我有一个Android应用程序(在支持库下运行),其中MyListFragment类扩展了ListFragment。以下是创建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。 但我不知道应该用什么来检测这些变化。
答案 0 :(得分:1)
取决于:
如果您的数据库始终相同且您只需要检测adapterAllEvents中的更改,请在adaper上调用notifyDataSetChanged()
如果数据在DB中发生变化,可以使用CursorLoader和LoaderManager.LoaderCallbacks获取要传递给CursorAdapter的Cursor对象。数据更改时调用restartLoader