intent(1、传递参数)

intent意思为“意图、目的”,作为不同组件之间的信息传递媒介,主要是以下三个:

  • activity:     startActivity() 和 startActivityForResult();
  • Service:     startService() 和 bindService();
  • Broadcast: sendBroadcast()、sendOderedBroadcast()和sendStickyBroadcast();

intent在不同组件件传递参数,主要涉及如下几类:

  • 基本数据,如字符串、整数等,如下:
//发送
intent.putExtra("key1", "value1");
intent.putExtra("key2", 2.0f);

//接受
Intent intent  = this.getIntent();
String value1  = intent.getStringExtra("key1");
float  value2   = intent.getFloatExtra("key2",0);
  • 利用bundle

    • 将对象集成 Serializable 接口
public class User implements Serializable { //也可以是parcelable,类似
    • 向intent增加bundle,如下:
//发送
Bundle bundle = new Bundle();

User user = new User();
user.setUsername("fredric");
user.setPassword("sinny");
bundle.putSerializable("user", user);
intent.putExtras(bundle);   

//接收
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();

User user = (User) bundle.get("user");     
  • 强制类型转换,如下例:
//发送
List<User> userlist = new ArrayList<User>();
for(int i = 0; i < 10; i++){
    User tmp = new User();
    tmp.setUsername("sinny");
    tmp.setPassword("fredric" + i);
    userlist.add(tmp);
}

intent.putExtra("userlist", (Serializable)userlist);

//接收
List<User> userlist = (List<User>)intent.getSerializableExtra("userlist");

Iterator<User> iterator = userlist.iterator();

while(iterator.hasNext()){
    User tmp = iterator.next();
    Log.i(TAG_ACTIVITY, tmp.getUsername() + tmp.getPassword());
}
时间: 2024-10-13 21:58:13

intent(1、传递参数)的相关文章

Android的intent之间复杂参数的传递

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-04/58732.htm 一.传递List<String>和List<Integer> 以下以传递List<String>为例,发送List<String>语法为: intent.putStringArrayListExtra(key, list); 接收List<String>的语法为: li

Android---intent传递参数

Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,使用Intent和Bundle在组件之间传递数据,而这两种通常实现的是Java基本对象类型和String的传递. 在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象.List类型.List<Object>类型和全局变量等等的需求.一.传递List<String>和List<Integer> 以下以传递List<String>为例,发送

Activity间用Intent和Bundle传递参数

传递方: //点击btn_sub传递 fieldHeight.getText()和 fieldWeight.getText() private void setListeners()    {     btn_sub.setOnClickListener(calrBMI);     }    private OnClickListener calrBMI = new OnClickListener()    {     public void onClick(View v)     { Inte

使用Intent向Activity传递参数

在前面 向应用添加一个新的Activity 里,我们使用 intent 从一个 Activity 跳转到另一个 Activity.其实 intent 在跳转的同时,还可以向目标 Activity 传递参数,这里我们还是以实际例子来说明怎么操作.云鼎娱乐城 MainActivity : 01 private Button button; 02   03 @Override 04 protected void onCreate(Bundle savedInstanceState) { 05     

Android开发系列(十三):Intent实现Activity之间的转换以及startActivityForResult传递参数

一.Intent实现Activity之间的切换 1.构造函数法: Intent intent = new Intent(this , OtherActivity.class); //两个参数:第一个是上下文对象,第二个是要切换的Activity的class字节码 startActivity(intent); 2.setClass方法: Intent intent = new Intent(); intent.setClass(this, OtherActivity.class); //设置要激活

Android使用Intent让不同Activity切换,并传递参数

基本用法: 显式 Intent intent=new Intent(Activity甲.this,Activity乙.class); startActivity(intent); 传递参数 Intent intent=new Intent(Activity甲.this,Activity乙.class); intent.putExtra("参数名","要传的价值,可以是任何类型"); startActivity(intent); 获取参数 在目标Activity中 I

Activity之间传递参数

Activity之间的数据传递 1传递简单数据 2传递数据包(Bundle) 3传递值对象 4获取Activity的返回参数 1------传递简单的数据 新建android工程,取名SendArgs,在activity_main.xml文件里添加一个按钮,用于启动另一个Activity,然后新建一个Activity(手动建class再extends Activity的,需要在AndroidManifest.xml文件里添加配置信息,建议直接新建android activity),取名Aty.

intent.putExtra()方法参数详解

[putExtra("A",B)中,AB为键值对,第一个参数为键名,第二个参数为键对应的值.顺便提一下,如果想取出Intent对象中的这些值,需要在你的另一个Activity中用getXXXXXExtra方法,注意需要使用对应类型的方法,参数为键名] 要不我举个例子吧,,大家注意注释的地方哈,源码在下面. 来建第一个Activity:MyIntent public class MyIntent extends Activity {                   /*声明控件对象*

17_Android中Broadcast详解(有序广播,无序广播)最终广播,Bundle传递参数,传递参数的时候指定权限

?? 1  Broadcast是Android中的四大组件之一,他的用途很大,比如系统的一些广播:电量低.开机.锁屏等一些操作都会发送一个广播. 2  广播被分为两种不同的类型:"普通广播(Normalbroadcasts)"和"有序广播(Ordered broadcasts)".普通广播是完全异步的,可以在同一时刻(逻辑上)被所有广播接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播:然后有序广