ListFragment를 사용합니다.ListFragment 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가 null 설정, 아니면 내가 뭔가 잘못을 한 후 ?
"작동하지 않음"은 증상에 대한 완전히 쓸모없는 설명입니다. "savedInstanceState == null"- saveInstanceState (true)와는 아무런 관련이 없습니다. – CommonsWare
setRetainInstance (true)를 사용할 때; onActivityCreated (Bundle savedInstanceState) - savedInstanceState - not null .. 아니면 내가 틀렸어? –
죄송합니다, 첫 번째 의견에 오타가있었습니다. 'savedInstanceState'는'setRetainInstance (true)'에 엄격하게 묶여 있지 않습니다. 'setRetainInstance (true)'는 실제'Fragment' 객체가 설정 변경에 걸쳐 유지된다는 것을 의미하므로 데이터 멤버는 그대로 유지됩니다. – CommonsWare