Save a Activity in Android When moved to another Activity
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How do I save an Android application's state?
我目前正在使用具有以下行为的应用程序:我使用的是2个edittext,我在其中键入了一些值,当我按下按钮时它将转到下一页或下一个活动,但问题是当我返回到活动时,我在EditText中找不到值,请帮助我。请告诉我密码…提前谢谢……
这是我的代码……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | public class TestsampleActivity extends Activity { Button b1,b2; TextView t1; EditText e1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); b1= (Button)findViewById(R.id.btn1); b2= (Button)findViewById(R.id.btn2); t1=(TextView)findViewById(R.id.tv1); e1=(EditText)findViewById(R.id.et1); b1.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ add(); } }); b2.setOnClickListener(new Button.OnClickListener() { public void onClick (View v){ del(); } }); } public void add() { String s1= e1.getText().toString(); Intent intent=new Intent(this,next.class); intent.putExtra("name",s1); startActivity(intent); /* String s1= e1.getText().toString(); //t1.append(s1); t1.setText(s1); */ } public void del() { e1.setText(""); t1.setText(""); } } |
在加载新活动之前,必须重写OnSaveInstanceState(bundle b)以保存数据。
此外,还必须还原覆盖OnRestoreinstanceState并返回值…
您可以在此处查看更多信息:
使用保存实例状态保存Android活动状态
或
http://developer.android.com/reference/android/app/activity.html_onsaveinstancestate(android.os.bundle)
返回上一个活动时:使用以下方法:
1 2 3 | Intent intent_obj=new Intent(); String id = intent_obj.getStringExtra("id"); e1.setText(id); |
这会奏效的….!!!!
将文本保存在onsaveUnderanceState()方法中提供的bundel的编辑中。然后在onRestoreStanceState()方法中,使用保存的值来恢复EditText中的文本。