前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android开发_Intent高级学习(保存Activity状态)

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

作者头像
Hongten
发布2018-09-13 17:03:25
4820
发布2018-09-13 17:03:25
举报
文章被收录于专栏:Hongten

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

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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文件

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

4、编辑MainActivity.java文件

代码语言:javascript
复制
 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文件

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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中的值是没有变化

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-12-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档