1

リストビューを使用した私のフラグメント

@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() を使用できないことです。メソッド notifyDataSetChanged() は、タイプ ListView に対して未定義です。AsyncTask が実行され、logcat.What I have done wrong? で確認できます。

4

2 に答える 2

2

リストビューに notifyDataSetChanged() を使用できません

notifyDataSetChanged()そのため、メソッドを( ListView インスタンスで) として呼び出す代わりに、次のように呼び出すためにall.notifyDataSetChanged()Adapter インスタンスを使用する必要があります。

ad.notifyDataSetChanged()

public void notifyDataSetChanged()

API レベル 1 で追加

接続されたオブザーバーに、基になるデータが変更されたこと、およびデータ セットを反映するすべてのビューがそれ自体を更新する必要があることを通知します。

したがってnotifyDataSetChanged()、アダプターを呼び出します。

于 2013-07-06T05:59:27.700 に答える
1

notifyDataSetChanged() は、ListView 自体ではなく、アダプター インスタンスで呼び出す必要があります

于 2013-07-06T05:59:09.240 に答える