欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android Intent实现页面跳转

程序员文章站 2022-11-22 07:51:33
什么是Intent Intent可以理解为信使(意图) 由Intent来协作完成Android各个组件之间的通讯, 也可以说是实现页面与页面之间的跳转 Intent实现页面之间的跳转 startActivityForResult(intent, requestCode); //第二种启动方式 onA ......

什么是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页面数据

Android Intent实现页面跳转

Android Intent实现页面跳转首先创建一个项目

新建两个activity

Android Intent实现页面跳转

 

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

Android Intent实现页面跳转

随后,进行绑定,例如:

Android Intent实现页面跳转

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

Android Intent实现页面跳转Android Intent实现页面跳转

然后,在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 Intent实现页面跳转

Android Intent实现页面跳转

Android Intent实现页面跳转

 

 

 

这样就简单的实现了,

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

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