我使用ListFragmentListFragment setRetainInstance(true);不起作用
setRetainInstance(true);不工作,我不知道爲什麼
savedInstanceState == NULL
我的消息來源
public class Fragment_Left extends ListFragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Log.d(LOG_TAG, "Fragment1 onAttach");
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(LOG_TAG, "Fragment1 onCreate");
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
getListAdapter().getItem(position);
}
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
Log.i(LOG_TAG, "onSaveInstanceState()");
}
}
public class Fragment_Left extends ListFragment {
private ArrayList<Menu_item> menu_list; .....
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
menu_list = new ArrayList<Menu_item>();......
,但之後我轉身屏幕menu_list爲空,或者我做錯了什麼?
「不起作用」對您的症狀是完全無用的描述。 「savedInstanceState == null」 - 與'saveInstanceState(true)'無關。 – CommonsWare
當我使用setRetainInstance(true); onActivityCreated(Bundle savedInstanceState) - savedInstanceState - 非空..或者我錯了嗎? –
對不起,我在第一條評論中有一個錯字。 'savedInstanceState'並不嚴格依賴於'setRetainInstance(true)'。 'setRetainInstance(true)'表示實際的'Fragment'對象在配置更改中保留,所以您的數據成員保持不變。 – CommonsWare