android开发_Intent高级学习(保存Activity状态)

Intent高级学习(保存Activity状态)

New Android Project->

Project name:Activity

Build Target:Android 2.2

Application name:ActivityDemo

Package name:com.b510.intent.activity

Create Activity:MainActivity

Min SDK Version:8

Finish

1、main.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     >
 7 <TextView  
 8     android:layout_width="fill_parent" 
 9     android:layout_height="wrap_content" 
10     android:text="@string/hello"
11     />
12     <!-- 添加一个可供输入的文本框input -->
13     <EditText
14         android:id="@+id/input"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text=""
18     />
19     <!-- 添加一个按钮id=secondBtn -->
20     <Button
21         android:id="@+id/secondBtn"
22         android:layout_width="wrap_content"
23         android:layout_height="wrap_content"
24         android:text="@string/secondBtn"
25         />
26 </LinearLayout>

2、second.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:orientation="vertical"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     >
 7 <TextView  
 8     android:layout_width="fill_parent" 
 9     android:layout_height="wrap_content" 
10     android:text="@string/hello"
11     />
12     <!-- 添加一个可供接收参数的文本框get -->
13     <EditText
14         android:id="@+id/get"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text=""
18     />
19 </LinearLayout>

3、修改AndroidManifest.xml文件

1 <!-- 注册SecondActivity类,显示名称为:"@string/secondActivity"中的值 -->
2         <activity android:name=".SecondActivity"
3                   android:label="@string/secondActivity">
4         </activity>

4、编辑MainActivity.java文件

 1 public class MainActivity extends Activity {
 2     /* 定义一个字符串常量content */
 3     public static final String CONTENT = "content";
 4     /* 定义一个字符串常量MainActivity */
 5     private static final String TAG = "MainActivity";
 6     /* 定义一个名字为secondBtn的Button */
 7     private Button secondBtn;
 8     /* 定义一个名字为input的EditText */
 9     private EditText input;
10 
11     /** Called when the activity is first created. */
12     @Override
13     public void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.main);
16         //输出日志信息
17         Log.i(TAG, TAG + "-->onCreate()");
18         //在R文件中找到我们定义的Button
19         secondBtn = (Button) findViewById(R.id.secondBtn);
20         //给secondBtn添加点击事件
21         secondBtn.setOnClickListener(listener);
22 
23         input = (EditText) findViewById(R.id.input);
24         //判断Activity保存状态,在MainActivity被覆盖的时候,Activity会自动调用
25 //saveInstanceState()方法,保存被覆盖的Activity类中的相关信息
26         if (null != savedInstanceState
27                 && savedInstanceState.containsKey(CONTENT)) {
28             input.setText(savedInstanceState.getString(CONTENT).toString());
29         }
30     }
31 
32     @Override
33     protected void onDestroy() {
34         // TODO Auto-generated method stub
35         super.onDestroy();
36         Log.i(TAG, TAG + "onDestory()");
37     }
38 
39     @Override
40     protected void onPause() {
41         // TODO Auto-generated method stub
42         super.onPause();
43         Log.i(TAG, TAG + "onPause()");
44     }
45 
46     @Override
47     protected void onRestart() {
48         // TODO Auto-generated method stub
49         super.onRestart();
50         Log.i(TAG, TAG + "onRestart()");
51     }
52 
53     @Override
54     protected void onResume() {
55         // TODO Auto-generated method stub
56         super.onResume();
57         Log.i(TAG, TAG + "onResume()");
58     }
59 
60     @Override
61     protected void onStart() {
62         // TODO Auto-generated method stub
63         super.onStart();
64         Log.i(TAG, TAG + "onStart()");
65     }
66 
67     @Override
68     protected void onStop() {
69         // TODO Auto-generated method stub
70         super.onStop();
71     }
72 
73     @Override
74     protected void onSaveInstanceState(Bundle outState) {
75         // TODO Auto-generated method stub
76         super.onSaveInstanceState(outState);
77         //当Activity调用onStop()方法之前会调用此方法,这里处理的是保存input(EditText)中的信息
78         String content=input.getText().toString();
79         outState.putString(CONTENT, content);
80     }
81 
82     protected OnClickListener listener = new OnClickListener() {
83 
84         @Override
85         public void onClick(View v) {
86             Button btn = (Button) v;
87             Intent intent = new Intent();
88             switch (btn.getId()) {//跳转到SecondActivity类,并且把input(EditText)中的内容传过去
89             case R.id.secondBtn:
90                 intent.setClass(MainActivity.this, SecondActivity.class);
91                 intent.putExtra("text", input.getText().toString());
92                 break;
93             }
94             startActivity(intent);
95         }
96     };
97 }

5、编辑SecondActivity.java文件

public class SecondActivity extends Activity {
    private EditText get;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        
        // 首先获得从MainActivity类传递过来的Intent
        Intent intent = getIntent();
        // 在MainActivity那边是setExtras(name,key)
        // 在这里就是getExtras()了,他的返回类型是一个Bundle类型
        Bundle bundle = intent.getExtras();
        String text = bundle.getString("text");

        get=(EditText)findViewById(R.id.get);
        get.setText(text);
    }
}

6、修改string.xml文件

1 <string name="secondBtn">去向SecondActivity类</string>
2   <string name="secondActivity">secondActivity</string>

7、运行效果

7.1、输入:hello

http://www.cnblogs.com/hongten/gallery/image/112159.html

7.2、点击:按钮”去向SecondActivity”

http://www.cnblogs.com/hongten/gallery/image/112160.html

7.3、点击:返回按钮

http://www.cnblogs.com/hongten/gallery/image/112161.html

EditText中的值是没有变化

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区

领取腾讯云代金券