Как это возможно?Android - recyclerAdapter.getItem возвращает null в обратном вызове onClick
Адаптер использует положение для привязки держателя вида, чтобы пользователь мог видеть вид элемента на экране.
Но тогда пользователь нажимает на элемент, который вызывает исключение NullPointerException из-за того, что getItem (position) возвращает null.
Есть ли что-то не так с моей реализацией?
Адаптер:
// 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);
}
Я имею в виду, если пользователь может выбрать пункт, как это было бы пустым?