好吧,在我的活动中,我将内容视图从一个更改为另一个,如您所见。所以我想知道如何保存我的活动关闭时最后的内容视图。
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();
}
});
}
}
答案 0 :(得分:2)
<强>的setContentView 强>
您应该只在Activity生命周期中调用此方法一次。
保存状态
大多数情况下,您将使用onSaveInstanceState保存模型,并使用从该方法生成的包来恢复它们。 Activity,Fragment和Views都内置了这些方法。
坚持状态
如果您需要将数据用于比当前应用生命周期更长的时间段,则可以使用以下机制之一:
答案 1 :(得分:0)
创建一个类型为R.layout.levels的变量。假设R.layout.levels是RelativeLayout:RelativeLayout rl;
像这样初始化: rl =(RelativeLayout)getLayoutInflater()。inflate(R.layout.levels,null);
setContentView(rl);
如果要在销毁活动时保存变量,可以将其放在自定义Application类中并从那里检索它。您可以在此处找到“维护全局状态”的方法:http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android
我不知道这样做是好还是坏,但它可能是你所要求的解决方案。