适配器不会刷新

时间:2015-06-09 21:58:29

标签: android

我对活动做了mListDataAdapter.notifyDataSetChanged();并收到错误。我尝试使用onActivityResult();

将其设置为基本活动
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {     
       mListDataAdapter.notifyDataSetChanged();}

2 个答案:

答案 0 :(得分:0)

您在代码中尝试执行的操作并不十分清楚,但我猜您尝试使用onActivityResult();

中收到的新数据集更新适配器

以下是notifyDataSetChanged()在大多数情况下的工作原理。首先,您有一个数据集并在适配器中显示它们。稍后当您收到新数据集或想要更新您在适配器中显示的一个或多个对象时;

  1. 您将新数据集发送到适配器。假设你的适配器中有一个公共方法需要一些参数并操纵适配器中的对象列表,在你的情况下定义为List list = new ArrayList();
  2. 然后拨打notifyDataSetChanged()
  3. 第二步是强制调用getView方法。因此,当它被调用时,它将使用您刚刚操作的对象列表。因此,您将拥有一个全新的UI,其中包含对象列表中的新信息。

    修改

    当您从数据库中删除TODO时,您不会更新有关它的列表,您的适配器如何知道您刚刚更改的内容?因此,一旦从数据库中删除或添加任何内容,就需要从适配器中删除或添加相同的项目。因此,您可以在触发mListDataAdapter.addmListDataAdapter.remove后致电deleteTodo(int id)addTodo(View view)

答案 1 :(得分:0)

I found answer myself after properly passing data over intents.

@覆盖     protected void onActivityResult(int requestCode,int resultCode,Intent data){

    if (resultCode == RESULT_OK) {

        if (requestCode == 1) {
            Object object = data.getSerializableExtra("item");
            mListDataAdapter.add(object);

        }

    }


}