安卓企业开发(三) activity的四种经典传值方法

开发中遇到多个activity的传值问题 相邻两个之间的传值 或者多个三个以上之间的传值问题 但是很多同学这方面经验还是不足,说下常用的开发场景

1 一般的注册或者添加某项信息界面就会遇activity传值问题

2  比如我在一个界面提交新息  需要打开一个新的界面选择里面的信息回到当前activty的时候

现在说下比较经典的四种比较经典的传值方法

一 如果是两个相邻activity之间的传值:

可以用Intent传值 对象和单个属性都可以都可以

  1. Intent intent =new Intent(AActivity.this,bActivty.class);//
  2. // 可以这样
  3. intent.putExtra("name", "sss");
  4. intent.putExtra("age", 22);
  5. // 也可以直接用bundle放对象
  6. Bundle bundle =new Bundle();
  7. bundle.putString("name", "ss");
  8. bundle.putInt("age", 22);
  9. intent.putExtras(bundle);

二:相邻两个以上的activty之间的传值

可以照搬方法一 但是比较笨拙 界面一多初学者就会晕了

首先可以自定义个Application

<pre name="code" class="java"><pre name="code" class="java">public class MyApplication extends Application{

	public static User user=null;

}


定义你需要传递的对象或者属性 在A中拿到user 去实例化赋值 然后再除了A的任何一个Activity中去取值使用 如果你的信息比较多 需要每个界面添加不同的信心个这个对象USER 你可以拿到这个user不断去set属性值 到你最后一个界面使用的时候去取值使用就ok ,是不是挺方便》

这种思维也可以拓展为 数据库 网络服务器  或者xml 进行中转 如果只是临时不是持久储存就不必用这种方法了

三 如果是A 界面调到B界面 拿到user的name或者age 需要回到当前A的情况下

1 在A 中使用

startActivityForResult(intent,code);
code是返回码数 int

此方法跳到B

2  B可以使用finsh之前 将user或者某个属性扔给A

3 A使用 onActivityResult方法接受此intent

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  3. // TODO Auto-generated method stub
  4. user.setName(data.getStringExtra("name"))
  5. Toast.makeText(this, data.getStringExtra("name"), 1).show();//得到返回的user
    此name只是一个key
  6. super.onActivityResult(requestCode, resultCode, data);
  7. }


使用回调

大致步骤

在B中的定义一个回调接口
A中去实现这个接口原型 B中去将你需要传的值(例如name)放到接口了 B中执行此接口方法就OK 这样A 就拿到了user了

回调的功能不值这一点哦啊  可以在任何类里使用回调哦啊
方法二也适用与任何类

回调具体请看

http://blog.csdn.net/sk719887916/article/details/40543483
 回调详解

				
时间: 2024-10-24 14:51:10

安卓企业开发(三) activity的四种经典传值方法的相关文章

Android之Activity系列总结(三)--Activity的四种启动模式

一.返回栈简介 任务是指在执行特定作业时与用户交互的一系列 Activity. 这些 Activity 按照各自的打开顺序排列在堆栈(即返回栈,也叫任务栈)中. 首先介绍一下任务栈: (1)程序打开时就创建了一个任务栈, 用于存储当前程序的activity,所有的activity属于一个任务栈. (2)一个任务栈包含了一个activity的集合, 去有序的选择哪一个activity和用户进行交互:只有在任务栈栈顶的activity才可以跟用户进行交互. (3)任务栈可以移动到后台, 并且保留了每

详解Android开发中Activity的四种launchMode

Activity栈主要用于管理Activity的切换.当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载. Activity一共有以下四种launchMode: 1.standard:默认,每次使用Intent跳转到目标Activity时都创建一个新的实例.坏处是每次进入都要创建新的实例,执行OnCreate方法. 2.singleTop:如果要跳转的目标Activity正好在task的顶部(说明当前肯定不在目标task里,例如我在微信首页,然后想使用

安卓进阶-Activity的四种启动模式

我们在开发项目的过程中,会涉及到该应用中多个Activity组件之间的跳转,或者夹带其它应用的可复用的Activity.例如我们可能希望跳转到原来某个Activity实例,而不是产生大量重复的 Activity.这样就需要我们为 Activity 配置特定的加载模式,而不是使用默认的加载模式. 设置的位置在AndroidManifest.xml文件中activity元素的android:launchMode属性:<activity android:name="ActB" andr

安卓中Activity的四种启动模式

Activity的四种启动模式 (示例图) 1.standard  标准的启动模式,在回退栈中,每次访问启动的activity都是一个全新的Activity.   2.singleTop     栈顶单一,在回退栈中,如果打开的Activity就是栈顶的Activity, 将重用栈顶的这个Activity.   3.singleTask     栈内唯一,在回退栈中,如果打开一个栈中已存在的Activity,它会把这个Activity之上的所有Activity都杀死,从而保证栈内唯一.   4.

【Android笔记】Activity的四种启动模式

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity. 可能会希望一个Activity跳转到原来某个Activity实例,而不是产生大量重复的Activity. 这需要为Activity配置特定的加载模式,而不是使用默认的加载模式. Activity有四种加载模式: standard singleTop singleTask singleInstance 设置的位置在AndroidManifest.xml文件中activity元素的an

Android Activity的四种LaunchMode!!!

本文转自: http://marshal.easymorse.com/archives/2950. 写的非常好,分享给大家!!! 在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity.可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity. 这需要为Activity配置特定的加载模式,而不是使用默认的加载模式. 加载模式分类及在哪里配置 Activity有四种加载模式: standard singleTop

基础总结篇之二:Activity的四种launchMode (转载)

转自:http://blog.csdn.net/liuhe688/article/details/6754323 合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些.作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行.成大事者,须从小事做起:万事起于忽微,量变引起质变. 我们今天要讲的是Activity的四种launchMode.

基础总结篇之二:Activity的四种launchMode

合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些.作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行.成大事者,须从小事做起:万事起于忽微,量变引起质变. 我们今天要讲的是Activity的四种launchMode. launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实

基础总结篇之二:Activity的四种launchMode(转载)

合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天在社区看到有朋友问“如何在半年内成为顶级架构师”,有网友道“关灯睡觉,不用半年的...”,的确,做梦还来的快一些.作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行.成大事者,须从小事做起:万事起于忽微,量变引起质变. 我们今天要讲的是Activity的四种launchMode. launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实