当前位置: 萬仟网 > IT编程>移动>Android > Android Intent实现页面跳转

Android Intent实现页面跳转

20  人参与 | 时间:2019-02-09 | 我要评论

什么是intent

    intent可以理解为信使(意图)

    由intent来协作完成android各个组件之间的通讯, 也可以说是实现页面与页面之间的跳转

intent实现页面之间的跳转

  1. startactivity(intent)        //第一种方式启动
  2. startactivityforresult(intent, requestcode); //第二种启动方式

    onactivityresult(int requestcode, int resultcode, intent data)

    setresult(resultcode, data);

第一种启动方式实现直接跳转,无返回值

第二种启动方式a页面->b页面, b页面也能回传到a页面数据

onactivityresult(int requestcode, int resultcode, intent data)

这个是 用来a页面接收b页面回传的数据用的

setresult(resultcode, data) 这个是用来b页面回传给a页面数据

首先创建一个项目

新建两个activity

 

然后再layout 里面新建两个页面布局 layout右键ànewàandroid xml file

随后,进行绑定,例如:

然后,配置清单文件androidmanifest.xml

然后,在activity_first 插入两个button 一个textview 分别用来第一个和第二个跳转方式, 以及数据回传,代码如下:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <button
 8         android:id="@+id/bt_first"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content"
11         android:text="第一种启动方式" />
12 
13     <button
14         android:id="@+id/bt_second"
15         android:layout_width="match_parent"
16         android:layout_height="wrap_content"
17         android:text="第二种启动方式" />
18 
19     <textview
20         android:id="@+id/textview"
21         android:layout_width="match_parent"
22         android:layout_height="wrap_content"
23         android:text="把第二个页面回传的数据显示" />
24 
25 </linearlayout>

刚才提到了,实现跳转需要用到intent意图,代码很简单 清晰明了 我直接贴代码了

首先 firstactivity

 1 package com.example.intentdemo;
 2 
 3 import android.app.activity;
 4 import android.content.intent;
 5 import android.os.bundle;
 6 import android.view.view;
 7 import android.view.view.onclicklistener;
 8 import android.widget.button;
 9 import android.widget.textview;
10 
11 public class firstactivity extends activity {
12     button bt_first, bt_second;
13     textview textview;
14 
15     @override
16     protected void oncreate(bundle savedinstancestate) {
17         super.oncreate(savedinstancestate);
18         setcontentview(r.layout.activity_first);
19 
20         initview();
21     }
22 
23     private void initview() {
24         // 关联控件
25         bt_first = (button) findviewbyid(r.id.bt_first);
26         bt_second = (button) findviewbyid(r.id.bt_second);
27         textview = (textview) findviewbyid(r.id.textview);
28         bt_first.setonclicklistener(new onclicklistener() {
29 
30             @override
31             public void onclick(view arg0) {
32                 // 第一种跳转,无数据返回跳转
33                 intent intent = new intent(firstactivity.this,
34                         secondactivity.class);
35                 intent.putextra("content", "第一种跳转方式");
36                 startactivity(intent);
37             }
38         });
39         bt_second.setonclicklistener(new onclicklistener() {
40 
41             @override
42             public void onclick(view arg0) {
43                 // 第二种方式,有数据返回跳转
44                 intent intent = new intent(firstactivity.this,
45                         secondactivity.class);
46                 intent.putextra("content", "第二种跳转方式");
47 
48                 /*
49                  * 第一个参数是intent对象 第二个参数的请求的一个标识
50                  */
51                 startactivityforresult(intent, 1);
52             }
53         });
54     }
55 
56     /*
57      * 通过startactivityforresult跳转,接收返回数据的方法 requestcode:请求的标识
58      * resultcode:第二个页面返回的标识 data:第二个页面回传的数据
59      */
60 
61     @override
62     protected void onactivityresult(int requestcode, int resultcode, intent data) {
63         super.onactivityresult(requestcode, resultcode, data);
64         if (requestcode == 1) {
65             if (resultcode == 1) {
66                 string text = data.getstringextra("content");
67                 textview.settext(text);
68             }
69         }
70     }
71 }

secondactivity代码如下:

 1 package com.example.intentdemo;
 2 
 3 import android.app.activity;
 4 import android.content.intent;
 5 import android.os.bundle;
 6 import android.view.view;
 7 import android.view.view.onclicklistener;
 8 import android.widget.button;
 9 import android.widget.textview;
10 
11 public class secondactivity extends activity {
12     textview textview;
13     button button;
14     @override
15     protected void oncreate(bundle savedinstancestate) {
16         super.oncreate(savedinstancestate);
17         setcontentview(r.layout.activity_second);
18         //获取第一个页面的意图
19         intent intent = getintent();
20         
21         button = (button) findviewbyid(r.id.button);
22         textview = (textview) findviewbyid(r.id.textview);
23         //接收第一个页面传送的数据
24         textview.settext(intent.getstringextra("content"));
25         button.setonclicklistener(new onclicklistener() {
26             
27             @override
28             public void onclick(view arg0) {
29                 setresult(1, new intent().putextra("content", "从第二个页面返回"));
30                 //结束当前页面
31                 finish(); 
32             }
33         });
34     }
35 }

 

 

 

这样就简单的实现了,

如果有不懂的可以在下面发,我看到会帮你解决,android其他问题也可以

下面贴上demo:https://pan.baidu.com/s/16heq1pvnpb995i3-lag7qw

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com