Android多个Activity之间跳转的总结.docx
- 文档编号:15935202
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:18
- 大小:155.64KB
Android多个Activity之间跳转的总结.docx
《Android多个Activity之间跳转的总结.docx》由会员分享,可在线阅读,更多相关《Android多个Activity之间跳转的总结.docx(18页珍藏版)》请在冰点文库上搜索。
Android多个Activity之间跳转的总结
多个Activity跳转的小结
第一个例子:
demo1
Main—>SecondActivity—>Main
从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main。
也就是将子Activity的数据返回给父Activity。
代码如下:
Java代码
1.public class Main extends Activity {
2.
3. private Button btn;
4. private TextView request_text;
5. private final int FIRST_REQUEST_CODE = 1;
6.
7. /** Called when the activity is first created. */
8. @Override
9. public void onCreate(Bundle savedInstanceState) {
10. super.onCreate(savedInstanceState);
11. setContentView(R.layout.main);
12.
13. request_text = (TextView)this.findViewById(R.id.request_text);
14.
15. btn = (Button)this.findViewById(R.id.btn);
16. btn.setOnClickListener(new OnClickListener() {
17. public void onClick(View v) {
18. Intent i = new Intent(Main.this,SecondActivity.class);
19. i.putExtra("request_text_for_main", "从Main传递到SecondActivity");
20. startActivityForResult(i, FIRST_REQUEST_CODE);
21. }
22. });
23. }
24.
25. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
26. super.onActivityResult(requestCode, resultCode, data);
27. if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_OK){
28. if(data !
= null) {
29. request_text.setText(data.getStringExtra("request"));
30. }
31. }
32. }
33.}
Java代码
1.public class SecondActivity extends Activity{
2.
3. private TextView request_text;
4. private Button btn;
5. private String text;
6.
7. public void onCreate(Bundle savedInstanceState) {
8. super.onCreate(savedInstanceState);
9. setContentView(R.layout.second);
10.
11. request_text = (TextView)this.findViewById(R.id.request_text);
12.
13. if (getIntent().getStringExtra("request_text_for_main") !
= null) {
14. text = getIntent().getStringExtra("request_text_for_main");
15. request_text.setText(text);
16. }
17.
18. btn = (Button)this.findViewById(R.id.btn);
19. btn.setOnClickListener(new OnClickListener() {
20. public void onClick(View v) {
21. Intent i = new Intent();
22. i.putExtra("request",text+"\n"+"从SecondActivity传递到ThirdActivity");
23. setResult(Activity.RESULT_OK,i);
24. finish();
25. }
26. });
27. }
28.}
图一
图一所示是demo初始化的样子,点击“第一次跳转”进入图二。
图二
图二显示从Main到SecondActivity这个过程,再点击“第二次跳转”即返回Main这个Activity。
图三
图三表示跳转结束,Button按钮上面的文字记录跳转的过程。
这个例子最主要是第一个ActivityMain设置的onActivityResult()方法和startActivityForResult()方法。
在Main中通过startActivityForResult()调用SecondActivity,然后在onActivityResult()中获取其返回参数,或者说通过onActivityResult()进行回调。
SecondActivity中要返回第一个Main必须:
setResult(Activity.RESULT_OK,i);
finish();
第二个例子:
demo2
Main—>SecondActivity—>ThirdActivity—>Main
这个例子的流程,比上一个更复杂一些,经历了3个Activity,最好跳转回第一个Activity。
代码如下:
Java代码
1.public class Main extends Activity {
2.
3. private Button btn;
4. private TextView request_text;
5. private final int FIRST_REQUEST_CODE = 1;
6.
7. /** Called when the activity is first created. */
8. @Override
9. public void onCreate(Bundle savedInstanceState) {
10. super.onCreate(savedInstanceState);
11. setContentView(R.layout.main);
12.
13. request_text = (TextView)this.findViewById(R.id.request_text);
14.
15. btn = (Button)this.findViewById(R.id.btn);
16. btn.setOnClickListener(new OnClickListener() {
17. public void onClick(View v) {
18. Intent i = new Intent(Main.this,SecondActivity.class);
19. i.putExtra("request_text_for_main", "从Main传递到SecondActivity");
20. startActivityForResult(i, FIRST_REQUEST_CODE);
21. }
22. });
23. }
24.
25. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
26. super.onActivityResult(requestCode, resultCode, data);
27. if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_FIRST_USER){
28. if(data !
= null) {
29. request_text.setText(data.getStringExtra("request_text_for_third"));
30. }
31. }
32. }
33.}
Java代码
1.public class SecondActivity extends Activity{
2.
3. private TextView request_text;
4. private Button btn;
5. private final int SECOND_REQUEST_CODE = 2;
6. private String text;
7.
8. public void onCreate(Bundle savedInstanceState) {
9. super.onCreate(savedInstanceState);
10. setContentView(R.layout.second);
11.
12. request_text = (TextView)this.findViewById(R.id.request_text);
13.
14. if (getIntent().getStringExtra("request_text_for_main") !
= null) {
15. text = getIntent().getStringExtra("request_text_for_main");
16. request_text.setText(text);
17. }
18.
19. btn = (Button)this.findViewById(R.id.btn);
20. btn.setOnClickListener(new OnClickListener() {
21. public void onClick(View v) {
22. Intent i = new Intent(SecondActivity.this,ThirdActivity.class);
23. i.putExtra("request_text_for_second", text+"\n"+"从SecondActivity传递到ThirdActivity");
24. startActivityForResult(i, SECOND_REQUEST_CODE);
25. }
26. });
27. }
28.
29. @Override
30. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
31. super.onActivityResult(requestCode, resultCode, data);
32. if(requestCode==SECOND_REQUEST_CODE && data !
= null){
33. setResult(Activity.RESULT_FIRST_USER, data);
34. finish();
35. }
36. }
37.}
Java代码
1.public class ThirdActivity extends Activity{
2.
3. private TextView request_text;
4. private Button btn;
5. private String text;
6.
7. public void onCreate(Bundle savedInstanceState) {
8. super.onCreate(savedInstanceState);
9. setContentView(R.layout.third);
10.
11. text = getIntent().getStringExtra("request_text_for_second");
12. request_text = (TextView)this.findViewById(R.id.request_text);
13. request_text.setText(text);
14.
15. btn = (Button)this.findViewById(R.id.btn);
16. btn.setOnClickListener(new OnClickListener() {
17. public void onClick(View v) {
18. Intent i = new Intent();
19. i.putExtra("request_text_for_third", text+"\n"+"从ThirdActivity再次传递到Main");
20. setResult(Activity.RESULT_FIRST_USER, i);
21. finish();
22. }
23. });
24. }
25.
26.}
这个demo2比起前面的demo1的不同之处在于就是通过ThirdActivity进行跳转到Main。
在代码上的区别是:
(1)Main的onActivityResult()方法中,它的resultCode==Activity.RESULT_FIRST_USER而不是前面的resultCode==Activity.RESULT_OK
(2)SecondActivity中增加了onActivityResult()方法,该方法是用于回调ThirdActivity,并且该方法执行了跳转过程跳转到Main这个Activity。
(3)ThirdActivity和demo1的SecondActivity很类似。
第三个例子:
demo3
Main—>SecondActivity—>ThirdActivity—>SecondActivity—>Main
这个过程看起来复杂,其实不然,最后一步是借助SecondActivity的另一个Button实现的。
代码如下:
Java代码
1.public class Main extends Activity {
2. private Button btn;
3. private TextView request_text;
4. private final int FIRST_REQUEST_CODE = 1;
5.
6. /** Called when the activity is first created. */
7. @Override
8. public void onCreate(Bundle savedInstanceState) {
9. super.onCreate(savedInstanceState);
10. setContentView(R.layout.main);
11.
12. request_text = (TextView)this.findViewById(R.id.request_text);
13.
14. btn = (Button)this.findViewById(R.id.btn);
15. btn.setOnClickListener(new OnClickListener() {
16. public void onClick(View v) {
17. Intent i = new Intent(Main.this,SecondActivity.class);
18. i.putExtra("request_text_for_main", "从Main传递到SecondActivity");
19. startActivityForResult(i, FIRST_REQUEST_CODE);
20. }
21. });
22. }
23.
24. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
25. super.onActivityResult(requestCode, resultCode, data);
26. if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_FIRST_USER){
27. if(data !
= null) {
28. request_text.setText(data.getStringExtra("final_request"));
29. }
30. }
31. }
32.}
Java代码
1.public class SecondActivity extends Activity{
2.
3. private TextView request_text;
4. private Button btn,finalBtn;
5. private final int SECOND_REQUEST_CODE = 2;
6. private String text;
7.
8. public void onCreate(Bundle savedInstanceState) {
9. super.onCreate(savedInstanceState);
10. setContentView(R.layout.second);
11.
12. request_text = (TextView)this.findViewById(R.id.request_text);
13.
14. if (getIntent().getStringExtra("request_text_for_main") !
= null) {
15. text = getIntent().getStringExtra("request_text_for_main");
16. request_text.setText(text);
17. }
18.
19. btn = (Button)this.findViewById(R.id.btn);
20. btn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android Activity 之间 跳转 总结
![提示](https://static.bingdoc.com/images/bang_tan.gif)