在RecyclerView中单击项目后不确定在何处实现可拆分ArrayList

问题描述 投票:1回答:2

我想传递所选项目的一些信息,以便在新活动AboutApp.kt中进行查看,但是在这里,我仅通过一个信息(名称)进行测试。我对RecyclerView没任何问题,它可以工作。我已经看到了很多方法来处理可拆分的ArrayList对象,但是却感到混淆了要执行的活动,因此在MainActivity和AboutApp(目标意图)中出现错误。

一段代码MainActivity.kt在我使用position放置putExtra时,showSelectedHerbal中出现错误

class MainActivity : AppCompatActivity() {
    private lateinit var rvHerbal: RecyclerView
    private var list: ArrayList<Herbal> = arrayListOf()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        rvHerbal = findViewById(R.id.rv_herbal)
        rvHerbal.setHasFixedSize(true)

        list.addAll(HerbalData.listData)
        showRecyclerList()
    }

    private fun showRecyclerList() {
        rvHerbal.layoutManager = LinearLayoutManager(this)
        val listHerbalAdapter = ListHerbalAdapter(list)
        rvHerbal.adapter = listHerbalAdapter

        listHerbalAdapter.setOnItemClickCallback(object : ListHerbalAdapter.OnItemClickCallback {
            override fun onItemClicked(data: Herbal) {
                showSelectedHerbal(data)
            }
        })
    }

    ........

    private fun showSelectedHerbal(data: Herbal) {
        val moveIntent = Intent(this, AboutApp::class.java)
        moveIntent.putExtra("Example_Item", list!![position])
        this.startActivity(moveIntent)
    }

    .......
}

来自[[AboutApp.kt

的片段代码,在HerbalName()中出错。我知道我尚未实现可打包,所以它是错误的 val intent = intent val herbalData: HerbalData = intent.getParcelableExtra("Example_Item") val title: String = herbalData.herbalName() val itemName = findViewById<TextView>(R.id.item_name) itemName.text = title
[非常抱歉,我附上一些令我感到困惑的活动,其中一项可能是可实施包裹的正确位置。这是我的数据类

Herbal.kt

data class Herbal( var name: String = "", var detail: String = "", var photo: Int = 0 )
对象的区号

HerbalData.kt

object HerbalData { private val herbalName = arrayOf("Cengkeh", "Ginseng", "Jahe") .......... val listData: ArrayList<Herbal> get() { val list = arrayListOf<Herbal>() for (position in herbalName.indices) { val herbal = Herbal() herbal.name = herbalName[position] herbal.detail = herbalDetail[position] herbal.photo = herbalImage[position] list.add(herbal) } return list } }
[帮助我,请在何处写入可拆分ArrayList的活动以及如何修复它。在此先感谢您的帮助。 

我想传递所选项目的一些信息,以便在新活动AboutApp.kt中进行查看,但是在这里,我仅通过一个信息(名称)进行测试。我对RecyclerView没任何问题,它可以工作。我有...

android kotlin arraylist parcelable
2个回答
0
投票
首先,AboutApp.kt中的错误是因为HerbalData对象中有herbalName私有。删除private修饰符以在那里访问它。

0
投票
我建议您阅读this
© www.soinside.com 2019 - 2024. All rights reserved.