Android开发10——Activity的跳转与传值_显示意图(intent)的应用

简介:


Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据。

intent可以激活Activity,服务,广播三类组件。

本博文讲的是显示意图激活Activity组件。所谓显示意图就是在activity的激活时,显示指出了需要激活的activity的名字。

 


一、Activity跳转

方法一
Intent intent = new Intent(A.this, B.class); 
startActivity(intent)

 

方法二
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivity(intent);

实现从A跳转到B(A、B均继承自Activity)

 

 

二、传递数据

Activity A 传递数据

方法一
Intent intent = new Intent();
intent.setClass(A.this, B.class);
intent.putExtra("name", "xy");
intent.putExtra("age", 22);

startActivity(intent);

 

方法二
Intent intent = new Intent(A.this, B.class); 
Bundle bundle = new Bundle();
bundle.putString("name", "xy");
bundle.putInt("age", 22);

intent.putExtras(bundle);
startActivity(intent);

 


Activity B 接收数据

// 获取参数1
Intent intent = this.getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 22); // 缺省值为22

// 获取参数2
Bundle bundle = intent.getExtras();
String name2 = bundle.getString("name");
int age2 = bundle.getInt("age", 22);

两种获取参数方式均可,并不是和传参1,2方法一一对应

 


三、Activity返回值

跳转后前一个Activity已经被destroy了。如若要返回并显示数据,就必须将前一个Activity再次唤醒,同时调用某个方法来获取并显示数据。做法如下

1.从A页面跳转到B页面时不可使用startActivity()方法,而要使用startActivityForResult()方法

2.在A页面的Activity中,需要重写onActivityResult(int requestCode, int resultCode, Intent data)方法

  

Activity A

 // 有返回值的Activity
 public void openNewActivity2(View v)
 {
  Intent intent = new Intent();
  intent.setClass(this.getApplicationContext(), OtherActivity2.class);
  intent.putExtra("name", "xy");
  intent.putExtra("age", 20);
  startActivityForResult(intent, 1);
 }

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {
  // requestCode用于区分业务
  // resultCode用于区分某种业务的执行情况
  if (1 == requestCode && RESULT_OK == resultCode)
  {
   String result = data.getStringExtra("result");
   Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();
  }
  else
  {
   Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();
  }
 }


Activity B

 public void close(View v)
 {
  Intent intent = new Intent();
  intent.putExtra("result", "返回值");
  this.setResult(RESULT_OK, intent); // 设置结果数据
  this.finish(); // 关闭Activity
 }



四、总结

以上采用的意图intent均是显示意图。

 

参考地址:http://www.cnblogs.com/feng88724/archive/2011/02/10/1961225.html

目录
相关文章
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
305 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
271 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
637 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
3月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
537 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
165 0
|
3月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
236 6
|
5月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
211 0
|
5月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
398 11
|
9月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
2300 77

热门文章

最新文章