Android开发10——Activity的跳转与传值

简介:

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

 
  1. // 有返回值的Activity  
  2. public void openNewActivity2(View v)  
  3. {  
  4.  Intent intent = new Intent();  
  5.  intent.setClass(this.getApplicationContext(), OtherActivity2.class);  
  6.  intent.putExtra("name""xy");  
  7.  intent.putExtra("age"20);  
  8.  startActivityForResult(intent, 1);  
  9. }  
  10.  
  11. @Override 
  12. protected void onActivityResult(int requestCode, int resultCode, Intent data)  
  13. {  
  14.  // requestCode用于区分业务  
  15.  // resultCode用于区分某种业务的执行情况  
  16.  if (1 == requestCode && RESULT_OK == resultCode)  
  17.  {  
  18.   String result = data.getStringExtra("result");  
  19.   Toast.makeText(this.getBaseContext(), result, Toast.LENGTH_SHORT).show();  
  20.  }  
  21.  else 
  22.  {  
  23.   Toast.makeText(this.getBaseContext(), "无返回值", Toast.LENGTH_SHORT).show();  
  24.  }  
  25. }  

Activity B

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

 

四、总结

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

 

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

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1081317如需转载请自行联系原作者


woshixuye111

相关文章
|
4天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件实践
【10月更文挑战第4天】在安卓开发的海洋中,自定义控件是那片璀璨的星辰。它不仅让应用界面设计变得丰富多彩,还提升了用户体验。本文将带你探索自定义控件的核心概念、实现过程以及优化技巧,让你的应用在众多竞争者中脱颖而出。
|
4天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
19 1
|
6天前
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
26 4
Android开发表情emoji功能开发
|
5天前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
20 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
2天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件基础与进阶
【10月更文挑战第5天】在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将通过浅显易懂的语言和实例,引导你了解自定义控件的基本概念、创建流程以及高级应用技巧,帮助你在开发过程中更好地掌握自定义控件的使用和优化。
17 10
|
6天前
|
JSON API Android开发
探索安卓开发之旅:打造你的第一个天气应用
在这篇文章中,我们将一起踏上一段激动人心的旅程,学习如何在安卓平台上开发一个简单的天气应用。通过实际操作和代码示例,我们将逐步构建一个能够显示当前位置天气情况的应用。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供清晰的指导和启发性的见解,帮助你理解和掌握安卓开发的基础知识。让我们一起探索代码的世界,解锁新技能,实现你的创意和梦想。
|
3天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
4天前
|
前端开发 搜索推荐 Android开发
安卓开发中的自定义控件实践
【10月更文挑战第4天】在安卓开发的世界里,自定义控件如同画家的画笔,能够绘制出独一无二的界面。通过掌握自定义控件的绘制技巧,开发者可以突破系统提供的界面元素限制,创造出既符合品牌形象又提供卓越用户体验的应用。本文将引导你了解自定义控件的核心概念,并通过一个简单的例子展示如何实现一个基本的自定义控件,让你的安卓应用在视觉和交互上与众不同。
|
6天前
|
存储 XML 开发工具
探索安卓开发之旅:从新手到专家
在这篇文章中,我们将一起踏上一段激动人心的旅程,深入探索安卓开发的奥秘。无论你是刚刚起步的初学者,还是希望提升技能的中级开发者,亦或是渴望成为领域专家的资深人士,这里都有你需要的知识与技巧。通过浅显易懂的语言和逐步深入的内容安排,本文将带你了解安卓开发的核心概念、常用工具和最佳实践,助你构建稳固的知识基础,开启技术进阶之路。让我们开始吧!
|
9天前
|
设计模式 前端开发 数据库
探索安卓开发之旅——从初学者到专家
在数字时代的浪潮中,安卓应用开发成为了众多开发者的热门选择。本篇文章旨在为初入安卓开发的新手提供一个清晰的学习路径,从基础概念到高级技巧,逐步引导读者掌握安卓开发的核心知识。我们将通过实际代码示例,展示如何从零开始构建一个安卓应用,并介绍一些提升开发效率的工具和库。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往安卓开发世界的大门。