0

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
    }
}

0 Answers0