Android 如何保存活动的内容视图?

Android 如何保存活动的内容视图?,android,android-activity,save,Android,Android Activity,Save,好的,在我的活动中,我将我的内容视图从一个更改为另一个,如您所见。所以我想知道如何保存上次活动结束时的内容视图 public class Levels extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(android.R.style.Theme_NoTitleBar_F

好的,在我的活动中,我将我的内容视图从一个更改为另一个,如您所见。所以我想知道如何保存上次活动结束时的内容视图

 public class Levels extends Activity{

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
    setContentView(R.layout.levels);

    final EditText anstext1 = (EditText) findViewById(R.id.anstext1);
    Button button1 = (Button) findViewById(R.id.button1);

    button1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {   
             String result = anstext1.getText().toString();
             if(result.equals("they"))
                 setContentView(R.layout.social);
             else 
               Toast.makeText(getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show();
        }
    });
    }
}

setContentView

您应该在活动生命周期中只调用此方法一次

保存状态

大多数情况下,您将使用onSaveInstanceState保存模型,并使用该方法生成的捆绑包进行恢复。Activity、Fragment和Views内置了此类方法

持续状态

如果需要使用数据的时间超过当前应用程序生命周期,则可以使用以下机制之一:

  • 共享引用
  • SQL精简数据库
  • 文件I/O
  • 创建一个类型为R.layout.levels的变量。假设R.layout.levels是一个RelativeLayout:RelativeLayout rl

  • 按如下方式初始化它: rl=(RelativeLayout)GetLayoutFlater().inflate(R.layout.levels,null)

  • setContentView(rl)

  • 如果要在活动被销毁时保存变量,可以将其放入自定义应用程序类中并从中检索。您可以在“维护全球状态”中找到如何做到这一点:


    我不知道这样做是好是坏,但这可能是你所要求的解决方案。

    你说的“保存”是什么意思?您切换了活动布局,您想保存什么?尝试保存编辑文本值,并使用Android共享首选项存储和恢复。我所说的保存是指当用户单击活动时,它不仅会向他们显示第一个内容视图(活动布局),还会向他们显示任何内容视图(活动布局)他们是最后一个。