android intent跳转页面,Android Intent实现页面跳转

什么是Intent

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

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

Intent实现页面之间的跳转

startActivity(intent)        //第一种方式启动

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

1a691b27bf54e06ccbbeb9b2a8393312.png

d086180b6a00faffe1ce1408f3336b0f.png首先创建一个项目

新建两个Activity

6c249f100180cdb8c16245f75a9a6362.png

然后再layout 里面新建两个页面布局 layout右键ànewàAndroid XML File

b58756f8e3c059ac7b098e472e09b5ae.png

随后,进行绑定,例如:

4445729b3a95faa5aa58712206dc4474.png

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

22a588af5b5dacb5329cf5e3d3c80625.png

0da848badd13d5cc50f97687de9b18c7.png

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

1 <?xml version="1.0" encoding="utf-8"?>

2

3 android:layout_width="match_parent"

4 android:layout_height="match_parent"

5 android:orientation="vertical" >

6

7

9 android:layout_width="match_parent"

10 android:layout_height="wrap_content"

11 android:text="第一种启动方式" />

12

13

15 android:layout_width="match_parent"

16 android:layout_height="wrap_content"

17 android:text="第二种启动方式" />

18

19

21 android:layout_width="match_parent"

22 android:layout_height="wrap_content"

23 android:text="把第二个页面回传的数据显示" />

24

25

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

首先 FirstActivity

1 packagecom.example.intentdemo;2

3 importandroid.app.Activity;4 importandroid.content.Intent;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.view.View.OnClickListener;8 importandroid.widget.Button;9 importandroid.widget.TextView;10

11 public class FirstActivity extendsActivity {12 Button bt_first, bt_second;13 TextView textView;14

15 @Override16 protected voidonCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.activity_first);19

20 initView();21 }22

23 private voidinitView() {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(newOnClickListener() {29

30 @Override31 public voidonClick(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(newOnClickListener() {40

41 @Override42 public voidonClick(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 @Override62 protected void onActivityResult(int requestCode, intresultCode, 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 packagecom.example.intentdemo;2

3 importandroid.app.Activity;4 importandroid.content.Intent;5 importandroid.os.Bundle;6 importandroid.view.View;7 importandroid.view.View.OnClickListener;8 importandroid.widget.Button;9 importandroid.widget.TextView;10

11 public class SecondActivity extendsActivity {12 TextView textView;13 Button button;14 @Override15 protected voidonCreate(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(newOnClickListener() {26

27 @Override28 public voidonClick(View arg0) {29 setResult(1, new Intent().putExtra("content", "从第二个页面返回"));30 //结束当前页面

31 finish();32 }33 });34 }35 }

79046f9f6a18cf8f4bf0dc7af8495919.png

92f60bdc78f5951907b7f948c248d347.png

3bbb649b38ff74675db92dd1d3268eb1.png

这样就简单的实现了,

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值