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

时间:2013-04-06 22:05:10

标签: android android-activity save

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

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

2 个答案:

答案 0 :(得分:2)

<强>的setContentView

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

保存状态

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

坚持状态

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

  1. SharedPreferences
  2. SQL-lite DB
  3. 文件I / O

答案 1 :(得分:0)

  1. 创建一个类型为R.layout.levels的变量。假设R.layout.levels是RelativeLayout:RelativeLayout rl;

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

  3. setContentView(rl);

  4. 如果要在销毁活动时保存变量,可以将其放在自定义Application类中并从那里检索它。您可以在此处找到“维护全局状态”的方法:http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

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