0
這怎麼可能?Android - recyclerAdapter.getItem在onClick回調函數中返回null
適配器使用位置綁定視圖保持器,因此用戶可以在屏幕上看到項目視圖。
但是,然後用戶單擊由於getItem(位置)返回null導致NullPointerException的項目。
我的實施有什麼問題嗎?
適配器:
// There will be more than 1000 items, so the SparseArray will face the performance problem. That's why I choose to use Map.
private Map<Integer, ArticleBean> articleBeans;
private Map<Integer, Integer> articleSerials = new LinkedHashMap<>();
@Override
public void onBindViewHolder(ItemHolder holder, int position) {
ArticleBean articleBean = articleBeans.get(position);
}
public ArticleBean getItem(int position){
return articleBeans.get(position);
}
public void addItem(ArticleBean articleBean){
if(!articleSerials.containsKey(serial)){
articleSerials.put(serial, articleBeans.size());
}
else{
return;
}
articleBeans.put(articleBeans.size(), articleBean);
}
的onclick回調:
@Override
public void onClick(View view, int position) {
// returns null
ArticleBean articleBean = mAdapter.getItem(position);
}
我的意思是,如果用戶可以點擊該項目,怎麼會是空?