删除后未立即刷新Android ListAdapter
在我的android应用程序中,我有一个使用扩展ArrayAdapter的适配器的片段列表。每当您长时间保留行项目时,您可以通过在警报对话框中单击“是”来删除该行。但当您单击“是”时,最后一行似乎被删除。当您关闭该片段并返回该片段时,视图就可以了,并删除了适当的行。经过这么多天的调试,我无法修复这个问题。有人能找出问题所在吗? 提前谢谢 适配器类 列表片段 删除方法删除后未立即刷新Android ListAdapter,android,android-fragments,android-listview,android-arrayadapter,Android,Android Fragments,Android Listview,Android Arrayadapter,在我的android应用程序中,我有一个使用扩展ArrayAdapter的适配器的片段列表。每当您长时间保留行项目时,您可以通过在警报对话框中单击“是”来删除该行。但当您单击“是”时,最后一行似乎被删除。当您关闭该片段并返回该片段时,视图就可以了,并删除了适当的行。经过这么多天的调试,我无法修复这个问题。有人能找出问题所在吗? 提前谢谢 适配器类 列表片段 删除方法 您可以尝试重新实例化DuaAdapter duasAdapter = new DuasListAdapter(your_conte
您可以尝试重新实例化DuaAdapter
duasAdapter = new DuasListAdapter(your_context_here, duas);
而不是
duasAdapter.clear();
if (duas.size() > 0) {
for (String object : duas) {
duasAdapter.insert(object, duasAdapter.getCount());
}
}
duasAdapter.notifyDataSetChanged();
您在视图上使用的是setOnItemLongClickListener,请改用setOnItemLongClickListener。未找到此类方法:setOnItemLongClickListener for convertView。只能访问convertView.setOnLongClickListener。请在使用阵列适配器填充的listview上使用setOnItemLongClickListener。是否调试了代码以验证sp中的列表是否已更新?是的,我有很多次,列表已正确更新。
public void removeDua(String duaIdentifier) {
String verses = new SharedPreferencesSupplication().read(SingletonClass.keyFavVerses, "");
String[] versesList = verses.split(",");
int indexFound = -1;
for (int i = 0; i < versesList.length; i++) {
if (versesList[i].equals(duaIdentifier)) {
indexFound = i;
break;
}
}
if (indexFound >= 0) {
verses = "";
for (int i = 0; i < versesList.length; i++) {
if (indexFound != i) {
if (verses.isEmpty())
verses = versesList[i];
else
verses = verses + "," + versesList[i];
}
}
new SharedPreferencesSupplication().save(SingletonClass.keyFavVerses, verses);
}
}
duasAdapter = new DuasListAdapter(your_context_here, duas);
duasAdapter.clear();
if (duas.size() > 0) {
for (String object : duas) {
duasAdapter.insert(object, duasAdapter.getCount());
}
}
duasAdapter.notifyDataSetChanged();