资讯专栏INFORMATION COLUMN

Android Intent实现页面跳转

boredream / 2178人阅读

摘要:什么是可以理解为信使意图由来协作完成各个组件之间的通讯也可以说是实现页面与页面之间的跳转实现页面之间的跳转第一种方式启动第二种启动方式第一种启动方式实现直接跳转无返回值第二种启动方式页面页面页面也能回传到页面数据这个是用来页面接收页面回传

什么是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 
 2 
 6 
 7     

刚才提到了,实现跳转需要用到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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2501.html

相关文章

  • Android路由框架-ARouter详解

    摘要:自定义分组创建并且添加注解,并且指定路由分组。点击会根据这两个字段会调起本地的。路由关闭温馨提示该功能慎用,搞不好整个页面跳转就了。文章大纲 一、页面路由基本介绍1.什么是页面路由2.为什么要使用页面路由二、页面路由框架ARouter介绍1.常用功能介绍2.常见应用场景三、源码下载四、参考文章   一、页面路由基本介绍 1.什么是页面路由   映射页面跳转关系,包含跳转相关的U...

    lolomaco 评论0 收藏0
  • React Native 跳转到 APP 推送页面并获取推送状态

    摘要:产品为了提高推送送达率,提了一个需求在推送关闭的情况下显示一个小,点击跳转到消息设置界面。第一步获取推送状态这里我主要参考极光推送。然后我们在侧做一些兼容处理跳转到消息设置页面需要跳转时,我们直接用这个函数就行了。 产品为了提高推送送达率,提了一个需求:在 APP 推送关闭的情况下显示一个小 TIP,点击 TIP 跳转到 APP 消息设置界面。 我们的 APP 是基于 React N...

    DrizzleX 评论0 收藏0
  • React Native 跳转到 APP 推送页面并获取推送状态

    摘要:产品为了提高推送送达率,提了一个需求在推送关闭的情况下显示一个小,点击跳转到消息设置界面。第一步获取推送状态这里我主要参考极光推送。然后我们在侧做一些兼容处理跳转到消息设置页面需要跳转时,我们直接用这个函数就行了。 产品为了提高推送送达率,提了一个需求:在 APP 推送关闭的情况下显示一个小 TIP,点击 TIP 跳转到 APP 消息设置界面。 我们的 APP 是基于 React N...

    tinyq 评论0 收藏0
  • Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activi

    摘要:如果觉得不错,那就点个赞吧总结本文讲了开发工程师文集生命周期,启动方式,相关介绍,详细讲解,如果您还有更好地理解,欢迎沟通定位分享知识点,有兴趣可以继续关注前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activity,就是一个界面,当我们在手机上打...

    chanjarster 评论0 收藏0
  • [Android]如何做一个崩溃率少于千分之三噶应用app(12)-module页面跳转

    摘要:如何做一个崩溃率少于千分之三噶应用章节列表我建立了一个关于架构学习的群,里面可以进一步进行组件化学习的交流。两个间跳转,是研发的基础。声明一个,通过来限定隐式启动的。统一管理启动的入口和返回的信息回调。 以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。 [Android]如何做一个崩溃率少于千分之三噶应用app--章节列表 我建立了一个关于Android架...

    LuDongWei 评论0 收藏0

发表评论

0条评论

boredream

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<