删除后未立即刷新Android ListAdapter

删除后未立即刷新Android ListAdapter,android,android-fragments,android-listview,android-arrayadapter,Android,Android Fragments,Android Listview,Android Arrayadapter,在我的android应用程序中,我有一个使用扩展ArrayAdapter的适配器的片段列表。每当您长时间保留行项目时,您可以通过在警报对话框中单击“是”来删除该行。但当您单击“是”时,最后一行似乎被删除。当您关闭该片段并返回该片段时,视图就可以了,并删除了适当的行。经过这么多天的调试,我无法修复这个问题。有人能找出问题所在吗? 提前谢谢 适配器类 列表片段 删除方法 您可以尝试重新实例化DuaAdapter duasAdapter = new DuasListAdapter(your_conte

在我的android应用程序中,我有一个使用扩展ArrayAdapter的适配器的片段列表。每当您长时间保留行项目时,您可以通过在警报对话框中单击“是”来删除该行。但当您单击“是”时,最后一行似乎被删除。当您关闭该片段并返回该片段时,视图就可以了,并删除了适当的行。经过这么多天的调试,我无法修复这个问题。有人能找出问题所在吗? 提前谢谢

适配器类

列表片段

删除方法


您可以尝试重新实例化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();