我有一个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。
但是我不知道我应该使用什么来检测这些变化。
最佳答案
这取决于:
如果您的数据库始终是相同的,并且只需要检测adapterAllEvents中的更改,请在adaper上调用notifyDataSetChanged()
如果您的数据在DB中更改,则可以使用CursorLoader和LoaderManager.LoaderCallbacks获取要传递给CursorAdapter的Cursor对象。数据更改时调用restartLoader
关于android - 当基础数据更改时,基于SQlite数据库中的数据更新Fragment List适配器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13706103/