Baserecyclerviewadapterhelper: setOnItemClickListener方法无效

Created on 24 Apr 2017  ·  7Comments  ·  Source: CymChad/BaseRecyclerViewAdapterHelper

Most helpful comment

找到方法了

自定义ViewHolder 重写onCreateViewHolder 方法并且在里面重写setAdapter 方法,然后在 自定义Viewholder中重写setAdapter 方法

1、onCreateViewHolder 中写下面的方法:

viewHolder.setAdapter(this);

2、viewholder中重写下面的方法:

@Override
protected BaseViewHolder setAdapter(BaseQuickAdapter adapter) {
return super.setAdapter(adapter);
}

All 7 comments

madapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
RequestNet(list.get(position).getNu(),list.get(position).getCom());
}
});

请自查代码是否有误? 或者item的布局有特殊设置?

1、 item 包含 checkbox,setOnItemClickListener失效
2、setOnItemChildClickListener 空指针错误,
java.lang.NullPointerException
at com.chad.library.adapter.base.BaseViewHolder$1.onClick(BaseViewHolder.java:361)

看了源码是因为BaseViewHolder里面的adapter为null(addOnClickListener这句我也添加了),原因看起来是recyclerview..setAdapter(madapter);这句话并未执行BaseViewHolder里面的setAdapter,而是执行了recycleview里面的setAdapter

setOnItemChildClickListener 空指针错误,
java.lang.NullPointerException 这个bug 在新版本已经被修复,请问你使用的版本号是 ?

2.9.13

java.lang.NullPointerException: Attempt to invoke virtual method 'com.chad.library.adapter.base.BaseQuickAdapter$OnItemChildClickListener com.chad.library.adapter.base.BaseQuickAdapter.getOnItemChildClickListener()' on a null object reference
at com.chad.library.adapter.base.BaseViewHolder$1.onClick(BaseViewHolder.java:362)

找到方法了

自定义ViewHolder 重写onCreateViewHolder 方法并且在里面重写setAdapter 方法,然后在 自定义Viewholder中重写setAdapter 方法

1、onCreateViewHolder 中写下面的方法:

viewHolder.setAdapter(this);

2、viewholder中重写下面的方法:

@Override
protected BaseViewHolder setAdapter(BaseQuickAdapter adapter) {
return super.setAdapter(adapter);
}

Was this page helpful?
0 / 5 - 0 ratings