繁体   English   中英

在 position 在 Android 获取项目 ListVIew

[英]Get item at position at Android ListVIew

我正在尝试从我单击的项目中检索数据,但我总是得到 null,我找不到解决方案。 我的代码:

 override fun onStart() {
        super.onStart()

        val records = RecordDAO(this).findAll().map {
            "${it.moduleName} ${it.moduleNum} (%${it.noteInProzent} ${it.creditPoints}crp)"
        }

        val adapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,records)

        this.recordListView.adapter = adapter

        recordListView.setOnItemClickListener { parent, view, position, id ->
            var record: Record? = recordListView.getItemAtPosition(position) as? Record
            if(record!= null) println(record.moduleName)
            else println("rec is null")
            intent = Intent(this,EditFormActivity::class.java)
            intent.putExtra("record",record)
            startActivity(intent)
        }
    }

Every time in the null check it prints null so I can not retrieve my item somehow, when I print the position for example I get the right position but I can not retrieve the item at that position.

您代码中的记录存储在 listView 适配器中,因此在 onItemClickListener 中,从适配器中获取您的项目,如下所示:

adapter.getItem(position)

另一种方法可能是:

(typecast_into_respective_object) parent.getItemAtPosition(position)

这里的parent是setOnItemClickListener中的adapterView object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM