使用listview在片段内部进行notifydatasetchange

时间:2013-07-06 05:49:05

标签: android listview android-fragments

我的片段与listview

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
View local=inflater.inflate(R.layout.allist,container,false);
ListView all=(ListView) local.findViewById(R.id.alllistView);
String link=getString(R.string.mainlink);
al=new ArrayList<MyItem>();
ArrayAdapter<MyItem> ad=new ArrayAdapter<MyItem>(getActivity(), android.R.layout.simple_list_item_1,al);
rlt=new RefreshLinkTask();
rlt.execute(new String[]{link});
all.setAdapter(ad);
return local;

我的问题是我不能将notifyDataSetChanged()用于listview。它显示方法notifyDataSetChanged()未定义类型ListView。执行的AsyncTask可以在logcat上看到。我做错了什么?。

2 个答案:

答案 0 :(得分:2)

  

我不能将notifyDataSetChanged()用于listview

所以不要将notifyDataSetChanged()方法调用为all.notifyDataSetChanged()(在ListView实例上),而是需要使用Adapter实例将其调用为:

ad.notifyDataSetChanged()

public void notifyDataSetChanged()

在API级别1中添加

通知附加的观察者基础数据已被更改,反映数据集的任何视图都应自行刷新。

请在适配器上调用notifyDataSetChanged()

答案 1 :(得分:1)

notifyDataSetChanged()应该调用适配器实例而不是ListView本身