在Android中保存一个活动当移动到另一个活动时[重复]
Posted
技术标签:
【中文标题】在Android中保存一个活动当移动到另一个活动时[重复]【英文标题】:Save a Activity in Android When moved to another Activity [duplicate] 【发布时间】:2011-12-18 12:21:06 【问题描述】:可能重复:How do I save an android application's state?
我目前正在使用具有以下行为的应用程序: 我正在使用 2 Edittext,我在其中输入了一些值,当我按下按钮时 它将转到下一页或活动,但是当我返回活动时,问题就在这里,我在edittext中找不到值,请帮助我.. 请告诉我代码... 在此先感谢....
这是我的代码....
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("");
【问题讨论】:
【参考方案1】:在加载新活动之前,您必须覆盖 onSaveInstanceState(Bundle b) 以保存数据。
您还必须恢复覆盖 onRestoreInstanceState 并取回值...
您可以在这里查看更多信息:
Saving Android Activity state using Save Instance State
或
http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)
【讨论】:
【参考方案2】:将编辑中的文本保存到onSaveInsanceState() 方法中提供的bundel。然后在您的 onRestoreInstanceState() 方法中,使用您保存的值来恢复 EditTexts 中的文本。
【讨论】:
【参考方案3】:返回上一个Activity时: 使用以下方法:
Intent intent_obj=new Intent();
String id = intent_obj.getStringExtra("id");
e1.setText(id);
这会起作用....!!!
【讨论】:
以上是关于在Android中保存一个活动当移动到另一个活动时[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将我在表单上填写的信息从一个活动保存到另一个活动并在我的 Android 程序中显示多次尝试? [关闭]
在android studio中单击操作栏菜单中的项目时跳转到另一个活动
将arraylist从一个活动发送到另一个活动到listview android [重复]
当我离开我的应用程序时如何停止 MediaPlayer,而不是当我移动到另一个 Activity 时(Android Studio)