Я хочу, чтобы мое представление переработчика анализировало данные моего массива при клике на элементе
strings.xml
<string-array name="club_name">
<item>Barcelona FC</item>
<item>Real Madrid FC</item>
<item>Bayern Munchen FC</item>
<item>Manchester City FC</item>
<item>Manchester United FC</item>
<item>Chelsea FC</item>
<item>AC Milan FC</item>
<item>Arsenal FC</item>
</string-array>
<array name="club_image">
<item>@drawable/img_barca</item>
<item>@drawable/img_madrid</item>
<item>@drawable/img_bayern</item>
<item>@drawable/img_city</item>
<item>@drawable/img_mu</item>
<item>@drawable/img_chelsea</item>
<item>@drawable/img_acm</item>
<item>@drawable/img_arsenal</item>
</array>
<array name="desc">
<item>asdfghjkl</item>
<item>zxcvbnm</item>
</array>
MainActivity.kt
class MainActivity : AppCompatActivity() {
private var items : MutableList<Item> = mutableListOf()
private fun initData(){
val name = resources.getStringArray(R.array.club_name)
val image = resources.obtainTypedArray(R.array.club_image)
items.clear()
for (i in name.indices){
items.add(Item(name[i],image.getResourceId(i,0),""))
}
image.recycle()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initData()
club_list.layoutManager = LinearLayoutManager(this)
club_list.adapter = RecyclerViewAdapter(this,items){
val toast = Toast.makeText(applicationContext,it.name,Toast.LENGTH_SHORT)
toast.show()
}
}
}
RecyclerAdapter.kt
class RecyclerViewAdapter(private val context: Context,private val items: List<Item>,private val listener:(Item)->Unit)
: RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>() {
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bindItem(items[position],listener)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder =
ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_list, parent, false))
override fun getItemCount(): Int = items.size
class ViewHolder(override val containerView: View) :RecyclerView.ViewHolder(containerView),LayoutContainer {
fun bindItem(items:Item,listener: (Item) -> Unit){
name.text = items.name
items.image?.let { Picasso.get().load(it).into(image)}
containerView.setOnClickListener{
listener(items)
}
}
}
}
Это элемент данных классов
Item.kt
data class Item(val name:String?,val image:Int?,val desc: String?)
поэтому я создал массив названий клубов и изображений клубов, показанных в mainacctivity, но я хочу, чтобы эти данные были отправлены в detailacctivity, в котором отображаются имя, изображение и описание