13

我正在使用列表适配器来显示不同的商店,当有人选择一个商店时,它会将他们带到一个新的活动中,他们可以在该屏幕上将商店添加到收藏夹。

调用上有一个返回按钮finish();,可以返回到带有列表视图的屏幕。

现在的问题是列表视图没有更新(即没有显示商店已添加到收藏夹)。我试过这段代码但没有运气:

@Override
public void onResume() {
    super.onResume();
    list.setAdapter(null);      
    updateMyList();
    adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])), 
        ((String[])status.toArray(new String[0])));
    list.setAdapter(adapter);
}

updateMyList()调用服务器 API 并更新名称和状态数组。

使用此代码,列表并没有真正更新......

4

4 回答 4

32

你应该只在你的 setAdapteronCreate()里面,onResume()你只需adapter.notifyDataSetChanged()要用新的数据集合调用。这将使用新的数据集合刷新您的 ListView。

于 2012-01-25T04:47:01.580 回答
4

使用此代码:

myList.clear();
myList.add("your array list items");            
setListAdapter(adapter);
adapter.notifyDataSetChanged();

我想这会对你有所帮助。

谢谢....

于 2012-03-22T06:16:26.903 回答
1

首先,您需要将商店列表添加到 arraylist,将此数组列表提交到ADAPTER,然后将其添加到列表视图

 list.setAdapter(adapter);

它将显示商店列表;onListItemClick点击那里你会得到ID listItem;通过使用列表项 ID,您可以像这样给出意图

Intent intent=new Intent(getApplicationContext(),------.class);
  startActivityForResult(intent);

取一个 java bean /setter 和 getter 方法类;将 getter 方法作为静态方法,设置您在子活动中创建的商店名称;覆盖方法调用onBackPressed();在那个方法里面写

setResult(RESULT_OK);
finish();

在父类中取一个方法onActivityForResult();在那个方法里面

 arraylist.add(javabeanClassname.getName());

将该arraylist添加到Adapter并编写代码

 list.setAdapter(adapter);
于 2012-01-25T06:49:46.177 回答
-1

在将新视图添加到 listView 之前删除所有以前的视图

listView.removeAllViews(); 

然后添加具有新值的适配器类。一件事确保在您从第二个活动返回时更新您的值,并且此代码正在调用。

于 2012-01-25T04:41:53.810 回答