Android之BaseQuickAdapter.setOnItemChildClickListener點擊死人也沒反應的原因

1 問題

用BaseQuickAdapter設置子view點擊事件

            unInstalledAdapter!!.setOnItemChildClickListener(object: BaseQuickAdapter.OnItemChildClickListener {
                override fun onItemChildClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
                    var info =  adapter?.getItem(position)
                    Log.i(TAG, "unInstalledAdapter info is:" + info.toString())
                    when(view?.id) {
                        R.id.installButton -> {Log.i(TAG, "unInstalledAdapter R.id.installButto has happen") }
                        R.id.deleteButton -> {Log.i(TAG, "unInstalledAdapter R.id.deleteButton has happen") }
                    }
                }
            })

死人也沒反應

 

 

 

2 解決辦法

在適配器裏面要記得註冊子view的監聽事件

helper.addOnClickListener(R.id.installButton);
    @Override
    protected void convert(BaseViewHolder helper, FluterApkInfoItem item) {
        helper.setText(R.id.tvAppName, item.getAppName()).setText(R.id.tvAppSize, item.getSizeStr());
        helper.addOnClickListener(R.id.installButton);
        helper.addOnClickListener(R.id.deleteButton);
    }

 

 

我們常用的Item點擊事件代碼如下

            adapter!!.setOnItemClickListener(object : BaseQuickAdapter.OnItemClickListener {
                override fun onItemClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {
                    Log.i(TAG, "setOnItemClickListener start position is:" + position)
                    var searchBean = searchResultList.get(position)
    
//                })
                }
            });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章