2

MyListFragment クラスが ListFragment を拡張する Android アプリケーション (サポート ライブラリで実行) があります。ListAdapter を作成するためのコードは次のとおりです。

public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);      
   DbHelperEvent dbHelper = new DbHelperEvent(getActivity());
   ArrayList<ReportEvent> events = new ArrayList<ReportEvent>();
   events = dbHelper.getAllEvents();
   dbHelper.close();

   this.adapterAllEvents = new ArrayAdapter<ReportEvent>(getActivity(), android.R.layout.simple_spinner_item, events);
   this.adapterAllEvents.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
   setListAdapter(adapterAllEvents);}

しかし、基になるデータはいつでも変更される可能性があるため、この変更を検出して ListAdapter を更新する必要があります。しかし、これらの変更を検出するために何を使用すればよいかわかりません。

4

1 に答える 1

1

場合によります:

  • DB が常に同じで、adaperAllEvents の変更を検出するだけでよい場合は、adaper で notifyDataSetChanged() を呼び出します。

  • DB でデータが変更されている場合は、CursorLoader と LoaderManager.LoaderCallbacks を使用して Cursor オブジェクトを取得し、CursorAdapter に渡すことができます。データが変更されたときに restartLoader を呼び出す

于 2012-12-04T15:39:57.153 に答える