前言:
在發這篇博客之前我確實對BaseQuickAdapter的各種OnItemClick、OnItemLongClick等方法都抱有着不咋好用的看法,但是這篇博客發完之後,我會好好利用這些方法,實在是太好用了,嘖嘖,真香..
長話短說,直接丟解決方案,不好使你找我。
Step 1:
檢查你的Adapter裏是否有以下AddOnClickListener的方法?
// 設置監聽
helper
.addOnClickListener(R.id.iv_back)
.addOnClickListener(R.id.iv_user_avatar)
.addOnClickListener(R.id.tv_comment_count)
.addOnClickListener(R.id.iv_favorite)
.addOnClickListener(R.id.lav_focus)
.addOnClickListener(R.id.tv_shared)
.addOnClickListener(R.id.tv_speak);
Step 2:
麻蛋自從找到問題的所在,我就餃子這個問題實在是太幼稚了,我都不好意思貼出來解決方案,檢查你Activity或Fragment的Adapter在適當的時候是否set了Listener?
mAdapter.setOnItemChildClickListener(this);
以上倆步驟其實就已經解決問題了,除非你嵌套了很多層的Adapter把自己搞懵了,不然設置完監聽和回調之後絕壁就好使了,如果還是不好使,那麼看下面:
Step 3:
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
LinearLayout layout = (LinearLayout) view.getParent();
// RelativeLayout layout = (RelativeLayout) view.getParent();
// 完了用你嵌套的佈局去找到你點擊所在的控件,就OK了
TextView tvPrint = layout.findViewById(R.id.tv_print);
// ImageView ivCover = layout.findViewById(R.id.iv_cover);
tv.setText("好用");
// ...
}
});