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两种传递数据方式,一种是传递简单数据,另一种是传递自定义数据
setContentView(R.layout.activity_main); //生成一个HandlerThread对象,实现了 使用Looper来处理消息队列的功能 HandlerThread handlerThread = new HandlerThread("handler_... //使用Message中的obj传递参数
主要介绍了Android 中为什么要用Fragment.setArguments(Bundle bundle)来传递参数,非常不错,具有参考借鉴价值,需要的朋友参考下
注意:本项目是基于android studio开发的,eclipse可能无法直接使用。 本项目是一个简单的基于安卓的记事本项目源码,添加或删除数据的时候会出现显示bug...4、intent、bundle传递参数 5、AlertDialog的基本使用
android记事本的demo在网上一搜一大堆,但是大神写的demo往往功能太多导致新手难以着手,很难啃得动;而一些新手写的demo又往往是东拼西凑,代码很多都是copy的...4、intent、bundle传递参数 5、AlertDialog的基本使用
1、传统的数据传递方式 - Bundle 传递数据 1、Navigation 组件中的 Bundle 数据传递 2、传统数据传递实现步骤 3、FragmentA 完整代码示例 4、FragmentB 完整代码示例 5、执行结果 2、使用 Bundle 传递数据安全性差 ...
在Androidstudio上写app,实现多页面跳转和传递参数,用bundle存取数据,可以在返回时把参数值带回来,避免丢失,顺利完成传参
注意:本项目是基于android studio开发的,eclipse可能无法直接使用。 本项目是一个简单的基于安卓的记事本项目源码,添加或删除数据的时候会出现显示bug(实际数据...4、intent、bundle传递参数 5、AlertDialog的
Android 中Activity 之间传递参数 1.传递简单数据 在A Activity中 findViewById(R.id.startBActicityBtn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i ...
Bundle 翻译成中文的意思是“捆绑”,常用在Activity间传递参数,之前一开始并不太待见,原因是Intent本身就可以传递,Intent.putExtra(“key”, value),为何还要用Bundle呢? 正巧小伙伴问Android传值Intent和...
参见 http://blog.csdn.net/xcl168 Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把... 其中Parcelable接口 Serializable接口 Singleton模式 Bundle方式各有一个代表性的例子。
Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,而这两种通常实现的是Java基本对象类型和String的传递。 在实际项目中,页面之间传值,除了以上几种,经常还有传递Object对象、List类型、...
1、第一种方式,也是最常用的方式,就是使用Bundle来传递参数 MyFragment myFragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putString(DATA,values);//这里的values就是我们要传的值 ...
不同界面之间,数据的传递是很常用的一个操作,这种数据的携带也是很简单的。...import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.EditTe
一个activity就好比一个网页,此文章讲解怎样创建一个activity并且实现跳转! 一、学习创建Activity ...import android.os.Bundle; public class MainActivity2 extends Activity{ @Override protected void on
本文实例讲述了Android Activity中使用Intent实现页面跳转与参数传递的方法。分享给大家供大家参考,具体如下: 新建一个FirstAvtivity.java package com.zhuguangwei; import android.app.Activity; import ...
// callback:一个传递Bundle参数的回调接口 // suffix:需要选择的文件后缀,比如需要选择wav、mp3文件的时候设置为".wav;.mp3;",注意最后需要一个分号(;) // images:用来根据后缀显示的图标资源ID。 // 根...
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; ...
在 Kotlin 中,应用程序可以使用 Bundle 将数据打包成键值对,然后使用 setArguments() 方法将其设置为接收片段的参数,从而在片段之间传递数据。 3.MVVM示例 MVVM 代表模型-视图-视图模型,它是一种用于软件开发的...