Last active
October 19, 2023 21:36
-
-
Save webserveis/d78b7ec6ba17ca025aa0570c63874319 to your computer and use it in GitHub Desktop.
Revisions
-
webserveis renamed this gist
Oct 29, 2019 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
webserveis created this gist
Oct 29, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,18 @@ val mAdapter = MySimpleAdapter(dummyData()) recycler_view.setHasFixedSize(true) recycler_view.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false) recycler_view.adapter = mAdapter mAdapter.setOnItemClickListener(object : MySimpleAdapter.ClickListener { override fun onItemClick(v: View, position: Int) { Log.v(TAG, "onItemClick ${position}") Toast.makeText( this@MainActivity, "Clicked: ${mAdapter.getItem(position)}", Toast.LENGTH_SHORT ).show() } }) This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,62 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView class MySimpleAdapter(private val mDataSet: List<String>?) : RecyclerView.Adapter<MySimpleAdapter.MyViewHolder>() { private var clickListener: ClickListener? = null override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { val v = LayoutInflater.from(parent.context) .inflate(R.layout.simple_list_item_1, parent, false) return MyViewHolder(v) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { val data = mDataSet?.get(position) data?.let { holder.bindItems(it) } } override fun getItemCount(): Int { return mDataSet?.size ?: 0 } fun getItem(position: Int): String? { //return if (mDataSet != null) mDataSet[position] else null return mDataSet?.get(position) } fun setOnItemClickListener(clickListener: ClickListener) { this.clickListener = clickListener } inner class MyViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { private val text1 = v.findViewById(android.R.id.text1) as TextView init { if (clickListener != null) { itemView.setOnClickListener(this) } } fun bindItems(data: String) { text1.text = data } override fun onClick(v: View?) { if (v != null) { clickListener?.onItemClick(v,adapterPosition) } } } interface ClickListener { fun onItemClick(v: View,position: Int) } } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,7 @@ # RecyclerView Kotlin onClickListener Ejemplo de como integrar un recyclerview usando Kotlin, los elementos se mostrarán con filas simples y permite ser pulsados Partiendo del trozo de código anterior (Recyclerview Kotlin I)[https://gist.github.com/webserveis/b66149f204c5946a8dd9107278486c63] ## Añadir funcionalidad onClickListener Para implementar onClickListener a los elementos que se visualizan en el recyclerView