转自:https://blog.youkuaiyun.com/qq_16774265/article/details/51957083
class SelectPosListView : ListView {
lateinit var dataChangedListener: DataChangedListener
constructor(context: Context?) : this(context, null)
constructor(context: Context?, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : this(context, attrs, 0, 0)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
override fun handleDataChanged() {
super.handleDataChanged()
dataChangedListener.onSuccess()
}
fun setDataChangeDListener(dataChangedListener: DataChangedListener) {
this.dataChangedListener = dataChangedListener
}
interface DataChangedListener {
fun onSuccess()
}
}
调用 这是在adapter内调用的
fun setPositionToSelect(selectedItem: Any){
var index = itemList.indexOf(selectedItem)
listCtrl.setDataChangeDListener(object :SelectPosListView.DataChangedListener{
override fun onSuccess() {
listCtrl.setSelection(index - emptyItemNum)
}
})
}
如果在activity 内调用直接 listview.setxxxxx.....就okk!
本文介绍了一种自定义ListView组件的方法,通过实现数据变更监听器,在数据变化时触发特定操作,如设置选中项。适用于Android应用开发中需要响应数据变化场景。
6800

被折叠的 条评论
为什么被折叠?



