I've Recyclerview Adapter for Activity (UJI2). I want to when I click item in recyclerview, the value of recyclerview will show in textview (Activity UJI2) this is my code
Activity UJI2, this activity have recyclerview and textview (txtuji2) in xml
class UJI2 : AppCompatActivity() {
var context: Context? = null
var recyclerViewAdapter: RecyclerView.Adapter<*>? = null
var recylerViewLayoutManager: RecyclerView.LayoutManager? = null
private var dbRuleReference: DatabaseReference? = null
private var dbDTReference: DatabaseReference?=null
private lateinit var db: FirebaseDatabase
var tampungkode2:String? = "W2"
var tampungkode3:String? = ""
var adapter: RecyclerView.Adapter<*>? = null
var list:List<String>? = null
val listkode2 = ArrayList<String>()
val listkode1 = ArrayList<String>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_u_j_i2)
context = applicationContext
db = FirebaseDatabase.getInstance()
dbRuleReference = db.getReference("CF_Rule")
dbDTReference = db.getReference("CF_DayaTarik")
val queryRule = dbRuleReference!!.orderByChild("kode_wisata").equalTo(tampungkode2)
val queryRule2 = dbDTReference!!.orderByChild("kode_dayatarik")
var recylerViewLayoutManager: RecyclerView.LayoutManager
queryRule.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.exists()) {
for (npsnapshot in dataSnapshot.children) {
queryRule2.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot2: DataSnapshot) {
val l: DataModel_Rule = npsnapshot.getValue(DataModel_Rule::class.java) as DataModel_Rule
val ll: String? = npsnapshot.child("kode_dayatarik").toString()
for (npsnaphot2 in dataSnapshot2.children) {
val d: Data_DayaTarik = npsnaphot2.getValue(Data_DayaTarik::class.java) as Data_DayaTarik
val dd: String? = npsnaphot2.child("kode_dayatarik").toString()
if (ll.equals(dd)) {
val tampungnamadaya: String? = npsnaphot2.child("nama_dayatarik").value.toString()
val tampungkodedaya: String? = npsnapshot.child("kode_dayatarik").value.toString()
if (ll != null) {
listkode2.add(tampungnamadaya.toString())
listkode1.add(tampungkodedaya.toString())
val builder = StringBuilder()
for (i in listkode2) {
builder.append("$i ")
}
Toast.makeText(this@UJI2, builder, Toast.LENGTH_LONG).show()
}
}
recylerViewLayoutManager = LinearLayoutManager(context)
recyclerview1!!.layoutManager = recylerViewLayoutManager
recyclerViewAdapter = RecyclerViewAdapter(listkode1, listkode2,this@UJI2)
recyclerview1!!.adapter = recyclerViewAdapter
}
}
override fun onCancelled(error: DatabaseError) {
// Failed to read value
//Log.w(TAG, "Failed to read value.", error.toException())
}
})
}
}
}
override fun onCancelled(databaseError: DatabaseError) {}
})
}
fun set2text(text:String){
txtuji2.setText(text)
}
}
And RecyclerView Adapter, I've also made object of Activity UJI2 as ux
class RecyclerViewAdapter(
var SubjectValues2: ArrayList<String>,
var SubjectValues: ArrayList<String>,
var context: Context
) :
RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>() {
var view1: View? = null
var viewHolder1: ViewHolder? = null
var textView: TextView? = null
var ux= UJI2()
fun RecyclerViewAdapter(SubjectValues2: ArrayList<String>, SubjectValues: ArrayList<String>, context: Context?) {
this.SubjectValues = SubjectValues
this.SubjectValues2 = SubjectValues2
this.context = context!!
ux = (context as UJI2?)!!
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.textView2.text = SubjectValues2[position]
holder.textView.text = SubjectValues[position]
holder.textView.setOnClickListener {
ux.txtuji2.text= SubjectValues2[position]
}
}
class ViewHolder(v: View?) : RecyclerView.ViewHolder(v!!) {
var textView: TextView
var textView2: TextView
init {
textView = v!!.findViewById<View>(com.example.explorebatang.R.id.subject_textview) as TextView
textView2 = v.findViewById<View>(com.example.explorebatang.R.id.subjectkode_textview) as TextView
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
view1 = LayoutInflater.from(context).inflate(
com.example.explorebatang.R.layout.recyclerview_items,
parent,
false
)
viewHolder1 = ViewHolder(view1)
return viewHolder1!!
}
override fun getItemCount(): Int {
return SubjectValues.size
}
}