如果从数据项中删除项目,android notifyDataSetChanged 不工作

标签 android listview baseadapter notifydatasetchanged

我正在开发一个 android 应用程序,我在其中使用一个基本适配器并以列表形式显示数据。现在如果我从列表中删除任何对象并调用 notifyDataSetChanged 会发生什么,它不起作用正如预期的那样。我按照以下方式进行了尝试。

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);



    shareDataList = getData();
    shareListAdapter = new SharedHistoryListAdapter(this, shareDataList);
    sharedList.setAdapter(shareListAdapter);

}

@Override
protected void onResume()
{

     super.onResume();

    // after deleting data it is coming inside onresume ... 

    shareDataList = getData();

    shareListAdapter.notifyDataSetChanged();

}

我还检查了我的 Activity 和适配器内部的数据大小。所以在 Activity 中它显示了预期的计数但在适配器内部它没有显示更新的计数。我错过了什么吗?需要一些帮助。

最佳答案

将列表设置到适配器后,您不能更改列表的引用。所以删除行

 shareDataList = getData(); 

并替换为

    shareDataList.clear();
    shareDataList.addAll(getData());

现在调用 shareListAdapter.notifyDataSetChanged();

关于如果从数据项中删除项目,android notifyDataSetChanged 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732045/

相关文章:

android - 知道 ListView 中的 View 何时离开屏幕?

java - 通知声音无穷无尽,永不停息

android - 如何在android中将处理程序用作计时器?

listview - 如何为 ListView 的 ContextActions 的 MenuItem 添加可见性绑定(bind)

java - 为什么使用 ImageAdapter 无法在 GridView 上显示图像

android - SwipeRefreshLayout 中的 ListView - 当自定义适配器只有一行要显示时不显示任何内容

android - 我们需要在Android中实现所有的抽象方法吗?

java - 以 wav 格式减小 Android 中录制声音的大小

android - 在屏幕上创建应用程序图标时如何防止 toast 消息

android - android中的 ListView 边框设计