Activity之间的跳转的两种实现方法

2023-11-11

概括

在Android当中,Activity的跳转有两种方法,第一个是利用startActivity(Intent intent);的方法,第二个则是利用startActivityForResult(Intent intent,int requestCode);的方法,从字面上来看,这两者之间的差别只在于是否有返回值的区别,实际上也确实只有这两种区别

第一种方法的代码实现

//建立Intent对象,将两个Activity之间联系起来
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//开启第二个Activity
startActivity(intent);

这样就实现了Activity的跳转了

第二种方法的代码实现

//我所自定义的申请码
 final public static int requestCode  = 1;

//建立两个Acitivty之间的联系
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
/**
 * Intent intent intent对象的内容
 * int requestCode 申请码
 */
startActivityForResult(intent,requestCode);

在这里int 类型的申请码实际上是一个标识,用于标记这是从什么地方发出去的申请。

然后在第二个Activity当中,就可以设置对第一个Activity所回传的消息了

 //我所自定义的回调码
final public static int resultCode = 1;

/**
                 * 建立Intent进行消息的传递
                 *
                 * putExtra(name,value);
                 * 第一个参数是数据的名称,第二个参数是数据的内容
                 *
                 * setResult(int resultCode,Intent data)
                 * 第一个参数是回调信息的回调码
                 * 第二个是回传信息的数据,使用Intent的形式进行传递
                 */
                Intent intent = new Intent();
                intent.putExtra("name","来自另外次元的消息");
                setResult(resultCode,intent);

同样,消息的回传是利用Intent对象进行的
然后,利用setResult方法就可以回传了。和跳转Activity的时候一样,这一也有一个码,这个码则是用来标识这是哪个Activity所发出的回调消息

在拥有了回调的方法后,也要建立一个获取回调的方法,而这个方法自然要写在第一个Activity当中了(废话).

在Activity当中,给我们提供了一个方法用于获取回调的信息

 /**
     * 获取从Activity当中回调的消息
     *
     *
     * @param requestCode    申请码
     * @param resultCode     返回码
     * @param data           回调的数据
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        /**
         * 当申请码和回调码都符合的时候,就是接收到相应的Activity的信息的时候
         */
        if(requestCode == MainActivity.requestCode && resultCode == SecondActivity.resultCode){
        //mText是一个TextView
            mText.setText(data.getStringExtra("name"));
        }
    }

这样就完成了第二种方法进行Activity的跳转与发送信息与接收回调了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activity之间的跳转的两种实现方法 的相关文章

  • Android 主机意图过滤器通配符

    是否可以在 android host 属性上使用通配符 就像是 android host site com android pathPattern android pathPrefix m android scheme http gt Or
  • Android KeyBoard.Key 禁用图标 预览特殊键?

    我通过实现 KeyboardView OnKeyboardActionListener 接口来自定义自己的软键盘 按下按键时 将显示预览弹出窗口 我的问题是如何禁用 SHIFT 和 DELETE 等特殊键的预览弹出窗口 我尝试将 andro
  • 如何检测和管理来电(Android)?

    我想创建一个应用程序 可以检测来电并在一定数量的蜂鸣声 响铃 后启动我的自定义活动 我的意思是在 2 或 3 或 5 声蜂鸣声 响铃 后我的activity被触发 我该怎么做 Thanks 我认为您无法计算自来电开始以来电话响了多少次 无法
  • 显示警报或收到通知时的视图

    我正在关注this http tokudu com 2010 how to implement push notifications for android 显示的教程通知 on an 安卓设备 当我在设备上运行该应用程序时 状态栏上会出现
  • 如何在出现“无法解析放置符号”错误时向哈希图添加键和值

    我正在与安卓工作室 https en wikipedia org wiki Android Studio1 4 1 我刚刚创建了一个 Hashmap 并正在遵循有关如何填充和操作它的教程 Java 语言 但是 我收到 无法解析符号放置 错误
  • 为什么我将可绘制文件重命名为 .9.png 后出现“Some file crunching failed”?

    我正在测试 9 patch 图像 在一切正常之前 我重命名drawable file ic button beat box default png to ic button beat box default 9 png 然后我收到错误 某些
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • 访问角落里的存储

    我能找到的与文件存储有关的最接近文档的是这个帖子 http nookdeveloper zendesk com entries 20257971 updated what are the size constraints on my app
  • 为什么按钮上的 maxWidth 不起作用以及如何解决它?

    我的布局上有两个按钮 在大屏幕设备 平板电脑 上我想限制它们的宽度 这样它们看起来就不会很荒谬 我希望使用 maxWidth 属性 但它显然在我的场景中没有任何作用 这是布局定义 按钮使用布局的整个宽度 忽略 maxWidth 中的任何值
  • 监听什么来检测 Android 中的请勿打扰模式更改?

    我希望我的应用程序在手机设置为请勿打扰模式 仅限闹钟 仅限优先级或完全静音 时显示通知 通过聆听 这效果非常好android media RINGER MODE CHANGED在快速设置中检查此模式并在已选择的选项卡中选择模式时 但是 当选
  • android 确定设备是否采用从右到左的语言/布局

    有没有办法确定设备是否使用从右到左的语言 例如阿拉伯语 而不是从左到右的语言 英语 与较旧的 API 级别 低至 10 兼容的东西是必要的 SOLUTION 我最终在接受的答案中使用了 xml 方法 接下来 我还添加了此处指示的代码 以应对
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • Android Web Intent 问题

    G day 免责声明 我不是 Android 开发人员 我正在对我所描述的问题进行质量检查 我用来描述这个问题的技术术语可能是错误的 我正在测试一个 Android 应用程序 该应用程序在其清单中描述它可以使用 type 的地址处理 Web
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • Android 改变 ImageView / Bitmap 的颜色

    我需要找到一种方法来改变 Android 中位图的颜色 我需要在我的应用程序中平滑地替换 更改椭圆形图像的颜色 具体取决于int价值 我需要类似的东西myValue 5比改变我的图像的颜色RED and if myValue 322将颜色更
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • android 中camera.setParameters 失败

    我已将相机功能包含在我的应用程序中 我还在市场上推出了该应用程序 我从一位用户那里收到一条错误消息 称他在打开相机时遇到错误 我已经在 2 1 的设备上测试了该应用程序 我从用户那里得到的错误是使用 Nexus One 它主要运行 2 2
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • 更改Android菜单的背景颜色[重复]

    这个问题在这里已经有答案了 我正在尝试将标准浅灰色更改为浅绿色 似乎没有一个简单的方法可以做到这一点 例如 通过 Android 主题 但我找到了一个解决方法 如本页所述 http tinyurl com 342dgn3 http tiny
  • 如何以编程方式创建活动转换?

    我想以编程方式创建一个动画 以从触摸屏点启动具有缩放效果的活动 接下来我模拟缩放输入效果

随机推荐

  • logback和slf4j的使用之encoder和Layout

    一 encoder介绍 1 encoder 主要工作有两个 将一个event事件转换成一组byte数组 将转换后的字节数据输出到文件中 2 encoder组件是在0 9 19版本之后才引进来的 在以前的版本中 appender是使用layo
  • 计算sinx=x-x^3/3!+x^5/5!-x^7/7!+.........

    计算sinx x x 3 3 x 5 5 x 7 7 include stdio h include stdlib h include string h include math h int main float sum t int i x
  • Driver not loaded Driver not loaded(QT打包后在别人的电脑上运行出现这个错误)解决方法

    Driver not loaded Driver not loaded QT打包后在别人的电脑上运行出现这个错误 解决方法 出现这个错误 导致的原因有很多 所以不妨先试试我找的这种解决方法 我也是试过了很多方法 这种方法也许不适合所有人的错
  • 微信小程序 live-pusher 实时音视频录制 组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 实时音视频录制 v2 9 1 起支持同层渲染 需要用户授权 scope camera scope record 暂只针对国内主体如下类目的小程序开放 需要先通过类目审核 再在小程序管理
  • HTB-Tier2- Unified

    HTB Tier2 Unified Tags Web Vulnerability Assessment Databases Injection Custom Applications Outdated Software MongoDB Ja
  • Element ‘aop:before‘ must have no character or element information item [children], because

    报错的XML配置
  • centos8用阿里云安装yum源

    Centos8用阿里云装yum源 首先ping外网 ping baidu com能通就可以开始做了 阿里云yum源设置官方文档 https developer aliyun com mirror centos spm a2c6h 13651
  • Blender几个简单建模

    吉普车 这里车窗添加了玻璃材质 看起来更真实 简易台灯 可以设置成自己喜欢的形状 颜色 酒瓶 这是还没有上色的 啤酒瓶大多数都是绿色的 一把红色的椅子 个人喜欢红色系列的 就添加了红色 以上都是简单的模型 初学者还需要继续努力
  • Ajax&JavaScript&css模仿百度一下模糊查询功能

    1 效果 如下图所示 我们在输入大学时 程序会到后端查询名字中包含大学的数据 并展示到前端页面 用户选择一个大学 该大学值会被赋值到input表单 同时关闭下拉表单 当页面展示的数据都不符合条件时 用户点击空白处 可关闭表单 2 前端 2
  • 微信小程序案例分享

    微信小程序 后台管理类 1 社区团购小程序 2 音乐播放器小程序 3 家具商城小程序 4 二手交易小程序 5 疫苗小程序 6 智慧停车小程序 7 读书小程序 8 美食小程序 前后端分类 管理后台类 1 企业招聘 2 客户关系管理系统 3 试
  • 敏捷开发中asp.net MVC的开发次序感受(先开发View?先开发Model?先开发Controller!)

    转载自 http blog csdn net cheny com article details 6592493 各种思路和顺序都试过 最开始时先编写Model 毕竟Model是所有一切的基础 再说没有Model Controller里边用
  • 2019年中山大学数据科学与计算机学院研究生统考机试

    2019年中山大学数据科学与计算机学院研究生统考机试题目回忆 本文回忆了2019年中山大学数据科学与计算机学院研究生考试机试题目 希望能对以后的同学的学习有所帮助 机试共十道题 1 继承 一共有3个类 animal cat dog cat和
  • ciscn 2022 misc 部分wp

    everlasting night 提示是注意png数据块 然后注意图片通道数据可以用来lsb解码 下载是一张图片 尝试几种方法之后没有太大发现 得到提示于是看了一下stegsolve f78dcd383f1b574b 这里发现了一串可疑字
  • 90、Tensorflow实现分布式学习,多台电脑,多个GPU 异步试学习

    Created on 2017年5月28日 author weizhen import time import tensorflow as tf from tensorflow examples tutorials mnist import
  • Vue 实现左边导航栏且右边显示具体内容(element-ui)

    最终效果图 现在开始进入正题 1 安装element ui npm i element ui S CDN 目前可以通过 unpkg com element ui 获取到最新版本的资源 在页面上引入 js 和 css 文件即可开始使用
  • 探索人工智能

    前言 模型训练是指使用算法和数据对机器学习模型进行参数调整和优化的过程 模型训练一般包含以下步骤 数据收集 数据预处理 模型选择 模型训练 模型评估 超参数调优 模型部署 持续优化 文章目录 前言 数据收集 数据预处理 模型选择 模型训练
  • Tracy 小笔记 Vue - 路由

    Vue Router 路由中有一个非常重要的概念叫路由表 本质上就是一个映射表 决定了数据包的指向 服务器渲染 后端渲染 如 jsp php java 服务器直接生产渲染好对应的 html 页面 返回到客户端进行展示 这种情况下渲染好的页面
  • java实现截图功能

    java实现截图功能 java实现截图 录屏 public static void main String args throws InterruptedException 截取整个屏幕 保存在H盘下 名字为当前时间毫秒值 格式为png T
  • Unity3D-UI--Layout组件

    Layout组件 自动排版 Layout Group Vertical Layout Group 垂直布局 垂直布局组 组件将其子布局元素彼此重叠 它们的高度由各自的最小高度 首选高度和柔性高度决定 具体取决于以下模型 Vertical L
  • Activity之间的跳转的两种实现方法

    概括 在Android当中 Activity的跳转有两种方法 第一个是利用startActivity Intent intent 的方法 第二个则是利用startActivityForResult Intent intent int req