`
Everyday都不同
  • 浏览: 714588 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

Bundle传递参数

阅读更多

bundle是在android中十分有用的一种类,我们通常用它来进行参数的传递。理解bundle可以把它当作一个Map<String,?>,所以它的本质是一个key-value键值对。其中key值为一个标识参数的String值,value即为该String对应的参数。
使用bundle传递参数会在intent、message、fragment中用到,下面就总结一下这几种情况下用bundle封装参数以及取出参数的写法。

1.intent(两个Activity的信使)使用bundle传递参数:
发送:

Bundle bundle = new Bundle(); 
bundle.putString("name" , "Lily");
bundle.putDouble("score" , 89.7);


Intent intent = new Intent();
intent.putExtras(bundle);
intent.setClass(ThisOne.this , ThatOne.class);
startActivity(intent);



接收:

Bundle bundle = this.getIntent().getExtras();
String name = bundle.getString("name");
double score = bundle.getDouble("score");

或者发送:

intent.putExtra("date", selectDate);

 接收:

Intent.getExtras().getString("date")

 
2.message(常常跟handler结合使用)使用bundle传递参数:
使用Message机制主要是为了保证线程之间操作安全,同时不需要关心具体的消息接收者,使消息本身和线程剥离开,这样就可以方便的实现定时、异步等操作。

发送:

 

Message msg = new Message();
msg.what = 0x123;
Bundle b = new Bundle();
b.putInt("age" , 20);
b.putString("name" , "Lily");
msg.setData(b);



接收:

Handler myHandler = new Handler{
   public void handleMessage(Message msg){
      Bundle b = msg.getData();
      int age = b.getInt("age");
      String name = b.getString("name");
  }
}


3.在Fragment(Activity片段)中使用Bundle传递参数
发送:

Bundle args = new Bundle();
args.putInt("","");
args.putString("","");
frament.setArguments(key, int);



接收:

Bundle args = getArguments();
String data = args.getInt(key);
String str = args.getString(key);

 

分享到:
评论

相关推荐

    Bundle传递数据方式

    包含Bundle两种传递数据方式,一种是传递简单数据,另一种是传递自定义数据

    Android:Handler学习实例2(HandlerThread、Bundle传递参数)

    setContentView(R.layout.activity_main); //生成一个HandlerThread对象,实现了 使用Looper来处理消息队列的功能 HandlerThread handlerThread = new HandlerThread("handler_... //使用Message中的obj传递参数

    Android 中为什么要用Fragment.setArguments(Bundle bundle)来传递参数

    主要介绍了Android 中为什么要用Fragment.setArguments(Bundle bundle)来传递参数,非常不错,具有参考借鉴价值,需要的朋友参考下

    Android项目源码带bug记事本可以学习基本的listview和SQLite知识.zip

    注意:本项目是基于android studio开发的,eclipse可能无法直接使用。 本项目是一个简单的基于安卓的记事本项目源码,添加或删除数据的时候会出现显示bug...4、intent、bundle传递参数 5、AlertDialog的基本使用

    android 记事本demo(listview与SQLite)

    android记事本的demo在网上一搜一大堆,但是大神写的demo往往功能太多导致新手难以着手,很难啃得动;而一些新手写的demo又往往是东拼西凑,代码很多都是copy的...4、intent、bundle传递参数 5、AlertDialog的基本使用

    JetpackNavigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

    1、传统的数据传递方式 - Bundle 传递数据 1、Navigation 组件中的 Bundle 数据传递 2、传统数据传递实现步骤 3、FragmentA 完整代码示例 4、FragmentB 完整代码示例 5、执行结果 2、使用 Bundle 传递数据安全性差 ...

    Androidstudio实现页面跳转和传递参数

    在Androidstudio上写app,实现多页面跳转和传递参数,用bundle存取数据,可以在返回时把参数值带回来,避免丢失,顺利完成传参

    Android项目源码带bug记事本可以学习基本的listview和SQLite知识

    注意:本项目是基于android studio开发的,eclipse可能无法直接使用。 本项目是一个简单的基于安卓的记事本项目源码,添加或删除数据的时候会出现显示bug(实际数据...4、intent、bundle传递参数 5、AlertDialog的

    Android 中Activity 之间传递参数

    Android 中Activity 之间传递参数 1.传递简单数据 在A Activity中 findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i ...

    Android中传值Intent与Bundle的区别小结

    Bundle 翻译成中文的意思是“捆绑”,常用在Activity间传递参数,之前一开始并不太待见,原因是Intent本身就可以传递,Intent.putExtra(“key”, value),为何还要用Bundle呢? 正巧小伙伴问Android传值Intent和...

    Android参数传递方法汇总

    参见 http://blog.csdn.net/xcl168 Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把... 其中Parcelable接口 Serializable接口 Singleton模式 Bundle方式各有一个代表性的例子。

    Android intent之间复杂参数传递方法详解

    Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,而这两种通常实现的是Java基本对象类型和String的传递。 在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List类型、...

    Android中Activity和Fragment传递数据的两种方式

    1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数 MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putString(DATA,values);//这里的values就是我们要传的值 ...

    详谈android界面之间数据的传递

    不同界面之间,数据的传递是很常用的一个操作,这种数据的携带也是很简单的。...import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.EditTe

    Android中Activity之间跳转和参数传递的实例

    一个activity就好比一个网页,此文章讲解怎样创建一个activity并且实现跳转! 一、学习创建Activity ...import android.os.Bundle; public class MainActivity2 extends Activity{ @Override protected void on

    Android Activity中使用Intent实现页面跳转与参数传递的方法

    本文实例讲述了Android Activity中使用Intent实现页面跳转与参数传递的方法。分享给大家供大家参考,具体如下: 新建一个FirstAvtivity.java package com.zhuguangwei; import android.app.Activity; import ...

    android打开sdcard目录

    // callback:一个传递Bundle参数的回调接口 // suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;.mp3;",注意最后需要一个分号(;) // images:用来根据后缀显示的图标资源ID。 // 根...

    android主线程和子线程之间消息传递详解

    import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; ...

    Android Activity跳转和listview的使用

    1.使用 Intent 和 Bundle 实现页面之间的参数传递和跳转; 2.ListView 的使用以及 ListView 中 Item 的点击事件处理 3.button点击事件

Global site tag (gtag.js) - Google Analytics