8

一定間隔でデータを追加するリストビューがありますが、完全なリストが更新されるため、アダプターを再度設定したくありません。完全なリストを更新せずに項目を追加する方法はありますか。

前もって感謝します。

4

4 に答える 4

-1

使用できます

adapter.add(<new data item>); // to add data to your adapter
adapter.notifyDatasetChanged();  // to refresh

たとえば。

ArrayAdapter<String> adapter;

public void onCreate() {
   ....
   ....

   ArryList<String> data = new ArrayList<String>();
   for(int i=0; i<10; i++) {
     data.add("Item " + (i+1));
   }

   adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
   setListAdapter(adapter);
}

これで、リストに追加する新しいデータがあるときはいつでも、次のことができます。

private void appendToList(ArrayList<String> newData) {
    for(String data : newData)
        adapter.add(data);

    adapter.notifyDatasetChanged();
}
于 2012-07-24T07:46:16.270 に答える
-1

これを使用できます。notifyDataSetChanged()

ただし、notifyDataSetChanged()は、アダプタで追加、挿入、削除、およびクリア関数を使用する場合にのみ、ArrayAdapterに対して機能します。

于 2012-07-24T07:48:28.167 に答える
-1

adapter.notifyDataSetChanged()リストを更新するために呼び出すことができます。

アダプターgetView()はさまざまなタイミングで呼び出され、特定のパターンはありません。したがって、ビューは更新が必要なときにいつでもListView更新されます。

しかし、私が見る限り、あなたは を探していadapter.notifyDataSetChangedます。ワークフローは次のようになります。

Set adapter to ListView
Add data to adapter`
Call notifyDataSetChanged() on adapter.

少なくとも、リストがリストの最初の項目に戻るのを防ぎます。それが役立つことを願っています。

于 2012-07-24T07:43:52.117 に答える