tyc*_*czj 2 android android-listview
我有一个ListFragment类作为我的活动的子类,在我PreferenceActivity的设置中,我改变了5个可能的列表视图中的2个排序,但当我返回到listview的活动时,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");
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以调用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(){
}
}
Run Code Online (Sandbox Code Playgroud)
你必须调用getLoaderManager().restartLoader(int,Bundle,LoaderCallbacks).在onCreateLoader()您可以Loader根据提供的内容创建新的Bundle.
请参阅http://developer.android.com/reference/android/app/LoaderManager.html上的示例,了解过滤器更改时的使用方法.要检测首选项更改,可以使用SharedPreferences.OnSharedPreferenceChangeListener.
| 归档时间: |
|
| 查看次数: |
4552 次 |
| 最近记录: |