我使用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