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)
    
//                })
                }
            });
原创文章 1110 获赞 743 访问量 332万+

猜你喜欢

转载自blog.csdn.net/u011068702/article/details/106005814