简体   繁体   English

如何保存片段的状态

[英]How can I save the state of my Fragments

I have multiple fragments with data I want to save, and be able to access from different fragments. 我有多个要保存的数据片段,并且可以从不同的片段访问。

If I just would like to save the state of a specific fragment, how would I do so? 如果我只想保存特定片段的状态,该如何保存?

Here is how I am currently navigating: 这是我目前的导航方式:

Fragment "1" 片段“ 1”

  case R.id.imageButton1:

            Fragment fragment2;
            fragment2 = new Frag2();
            //fragment2.setArguments(args);
            FragmentManager frgManager = getFragmentManager();
        //  frgManager.putFragment(bundle, key, fragment)
            frgManager.beginTransaction().replace(R.id.content_frame, fragment2)
                    .commit();      

            break;  

Fragment "2" 片段“ 2”

switch(v.getId()){


case R.id.imageButton2:
    Fragment fragment;
    fragment = new Frag1();
    fragment.setArguments(fragment.getArguments());
    android.app.FragmentManager frgManager = getFragmentManager();
    frgManager.beginTransaction().replace(R.id.content_frame, fragment)
            .commit();  
    break;

case R.id.imageButton1:     
    fragment = new  LifeFrag3();
    android.app.FragmentManager frgManage = getFragmentManager();
    frgManage.beginTransaction().replace(R.id.content_frame, fragment)
            .commit();
    break;

I have also tried passing data by storing values in a hash map and then using on pause and on resume to pass keys, but i have had no luck. 我也尝试过通过将值存储在哈希图中来传递数据,然后在暂停和恢复上使用以传递密钥,但是我没有运气。 :/ :/

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    if (savedInstanceState != null) {
        mContent = getSupportFragmentManager().getFragment(
                    savedInstanceState, "mContent");
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "mContent", mContent); 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何保存程序的状态然后加载它? - How can I save the state of my program and then load it? 如何在我的 android 应用程序中保存夜间模式的状态? - How can I save the state of the night mode in my android app? 尽管使用了共享首选项,但如何保存我的 cardView 单击事件状态以保存其颜色 - How can I save my cardView click event state to save its colour in spite of using shared preferences 如何将数据传递到我的片段中以显示我的视图? - How can i pass data into my fragments to my view? 如何保存JCheckBox的状态 - How can i save state of JCheckBox 如何在警报对话框中保存多项选择 state? - how can i save the multichoice state in an alertdialog? 如何使用webviewfragment更改方向时保存webview的状态 - how can i save the state of my webview when changing orientation using a webviewfragment 如何保存列表实例<fragments></fragments> - How do I save instance of List<Fragments> 我如何一次加载我的片段并保存其状态 - How do I load my Fragment once and save its state 在操作栏选项卡/片段之间切换时如何保持状态? - How can I maintain state when switching between action bar tabs / fragments?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM