gpt4 book ai didi

android - ListFragment setRetainInstance (true);不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:40 26 4
gpt4 key购买 nike

我用的是ListFragment

设置保留实例(真);不工作,我不知道为什么

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,还是我哪里做错了?

最佳答案

how do I store an array in a fragment?

我假设“将数组存储在 fragment 中”是指“在配置更改期间保留 fragment 使用的数组”。如果是这样:

选项 #1:将其放入 fragment 的数据成员中,然后对该 fragment 调用 setRetainInstance(true)

选项 #2:如果数组是 Bundle 支持的数据类型,覆盖 onSaveInstanceState(),将数据放入 Bundle,并在配置更改后创建的新 fragment 实例中的其他方法中检索该数据(例如,onCreateView())。

选项 #3:如果数组确实代表您应用的数据模型,请将其保存在新旧 fragment 实例可以访问的中央持久位置,例如数据库或文件。

关于android - ListFragment setRetainInstance (true);不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com