我正在使用RecyclerView创建应用程序,有时我会更改项目并立即通知notifyDataSetChanged()
或notifyItemRemoved(position)
,但我的应用程序有时会崩溃,但有时不会例外:
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 55, found: 56
代码#1: 我的代码:
imageList.add(file);
listener.onChange();
监听器:
@Override
public void onChange() {
photoAdapter.notifyDataSetChanged();
}
代码#2: 与代码的另一部分相同:
files.remove(file);
notifyItemRemoved(poss);
我不知道错误在哪里。你知道什么是可能的错误吗? 如果有必要,我可以发布一些额外的代码。
提前致谢。
编辑:代码#2中的错误代码:
for (File f : files) {
if (f.getAbsolutePath().equals(file.getAbsolutePath())) {
final int poss = files.indexOf(file);
files.remove(file);
notifyItemRemoved(poss);
break;
}
}