删除操作后刷新列表视图从arraylist创建

时间:2012-12-31 08:26:09

标签: android listview refresh adapter

我在listview上看到了太多关于刷新的问题,我已经尝试了关于主题的每个解决方案,但没有一个对我有用。

已尝试notifysetdatachange()invalidateviewsrefreshdrawablestate(),但均无效。

我有一个arraylist并且在longclick操作后我将从arraylist中删除一个项目。我希望它从listview中消失。但它没有。

但删除后如果我打开另一个活动并转回包含我listview的活动,它就会消失。

所以我的删除操作成功,我只是想知道如何刷新listview。,

我没有发布代码,因为我只使用

没有什么独特之处

我有一个名为arraylist的{​​{1}}。我正在填充对象。

然后我将它们发送到我的al_6喜欢

adapter

当我想从我的arraylist中删除一个对象时。

adapter = new ContentSearchListAdapter(getActivity(), channels2,
                options);
        listview.setAdapter(adapter);

正如我在删除操作成功之前说的那样

3 个答案:

答案 0 :(得分:0)

您应该使用这些语法来实现它

((YourAdaptor)Listview.getAdaptor()).notifyDataSetChange();

我希望它对你有帮助...... :)

答案 1 :(得分:0)

尝试此代码和适配器类

   // query fire on your deletion operation
   mArrayList.remove(position);
   notifyDataSetChanged();

答案 2 :(得分:0)

根据我的经验,listview的行为很难刷新它。我总是这样做刷新listView没有问题:

  • 使用从 BaseAdapter
  • 扩展而来的自定义适配器
  • ArrayList<> 结构数据用于适配器。如果您将数据存储在数据库SQLiteDatabase中,我建议将该列表中需要的数据放入ArrayList中并将其传递给适配器。我不能对CursorAdapter做同样的事情:(
  • 如果您计划修改活动外的数据并想要更新列表,请在您的活动中创建您的ArrayList和适配器 public static
  • 当您修改或删除数据中的任何信息时(如果直接在数据库上执行此操作,将其复制到ArrayList中),请使用Activity的Adapter的公共静态引用来调用他的方法 notifyDataSetChanged ()