これはどのように可能ですか?Android - recyclerAdapter.getItemはonClickコールバックでnullを返します
アダプターは、位置を使用してビューホルダーをバインドするので、ユーザーは画面上のアイテムビューを表示できます。
しかし、ユーザーは、getItem(position)が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);
}
私は意味は、どのようにそれがnullでしょうか?