0

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

 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();
        }
    });
    }
}
4

2 回答 2

2

设置内容视图

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

保存状态

大多数情况下,您将使用 onSaveInstanceState 保存模型并使用从该方法生成的包恢复它们。Activity、Fragment 和 Views 都内置了这些方法。

持续状态

如果您需要在比当前应用生命周期更长的时间内使用数据,您可以使用以下机制之一:

  1. 共享首选项
  2. SQL-lite 数据库
  3. 文件输入/输出
于 2013-04-06T22:34:43.003 回答
0
  1. 创建一个类型为 R.layout.levels 的变量。假设 R.layout.levels 是一个RelativeLayout:RelativeLayout rl;

  2. 像这样初始化它: rl = (RelativeLayout) getLayoutInflater().inflate(R.layout.levels,null);

  3. 设置内容视图(rl);

如果您想在活动被销毁时保存变量,您可以将它放在自定义应用程序类中并从那里检索它。您可以在“维护全局状态”处找到如何操作:http: //www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

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

于 2013-04-06T22:48:58.147 回答