我有一个 ListFragment 类作为我的活动的子类,并且PreferenceActivity
我有一个设置来更改我拥有的 5 个可能的列表视图中的 2 个的排序,但是当我返回到带有列表视图的活动时,onCreateLoader
不会再次调用所以列表保持不变。
更改设置值后如何更新列表?
我的一个例子onCreateLoader
if(pref.getString(Preferences.CAL_SORT, "1").equals("1")){
return new CursorLoader(getActivity(),CalendarEvents.EVENTS_URI,
new String[] {CalendarEvents.EVENT_ID,CalendarEvents.EVENT_READ,CalendarEvents.EVENT_SUBJECT,
CalendarEvents.EVENT_COMPANY_NAME,CalendarEvents.EVENT_START}
,null,null,CalendarEvents.EVENT_COMPANY_NAME+" COLLATE LOCALIZED ASC," /*+ julianday("*/+CalendarEvents.EVENT_START/* + ")"*/ + " COLLATE LOCALIZED DESC");
}else{
return new CursorLoader(getActivity(),CalendarEvents.EVENTS_URI,
new String[] {CalendarEvents.EVENT_ID,CalendarEvents.EVENT_READ,CalendarEvents.EVENT_SUBJECT,
CalendarEvents.EVENT_COMPANY_NAME,CalendarEvents.EVENT_START}
,null,null,CalendarEvents.EVENT_COMPANY_NAME+" COLLATE LOCALIZED ASC," /*+ julianday("*/+CalendarEvents.EVENT_START/* + ")"*/ + " COLLATE LOCALIZED ASC");
}
我知道我可以调用notifyDatasetChange()
适配器,但适配器对外部活动不可见。我应该在我的ContentProvider
这就是我的班级的结构
public class MainActivity extends FragmentActivity {
public static class ListViews extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor>{
public Loader<Cursor> onCreateLoader(int arg0,Bundle arg1){
}
}
public void onResume(){
}
}