在Android中保存活动移动到另一个活动时

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中的文本。