`
Everyday都不同
  • 浏览: 720379 次
  • 性别: 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);

 

分享到:
评论

相关推荐

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

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

    Fragment与Activity使用Bundle传递数据

    4. **注意生命周期**:在使用Bundle传递数据时,需要注意Activity和Fragment的生命周期。当Activity或Fragment被销毁后,它们保存的Bundle数据可能会丢失。因此,对于跨Activity的数据传递,一般推荐使用Parcelable...

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

    官方推荐使用`Fragment.setArguments(Bundle bundle)`方法来传递参数,而不是直接通过构造方法。这里我们将详细探讨这种推荐做法的原因以及其背后的机制。 首先,让我们分析一下直接通过构造方法传递参数的问题。在...

    Intent_Bundle_传参数

    本文将深入探讨Intent中的Bundle参数传递机制。 Bundle,全称为“软件包”,在Android系统中扮演着数据容器的角色,它允许我们存储和恢复键值对数据。Bundle支持的数据类型包括基本类型(如int、float、String等)...

    anctivity间传递参数

    有两种主要方式传递参数: - **不传递参数**: 当不需要传递数据时,只需创建一个Intent并指定目标Activity: ```java startActivity(new Intent(MainActivity.this, OneActivity.class)); ``` - **传递参数...

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

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

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

    本篇文章将详细介绍如何在Android Studio中进行页面跳转并传递参数,以及如何利用Bundle对象来存储和恢复数据。 首先,页面跳转在Android中主要通过Intent对象来实现。Intent是一种用来表达应用程序之间意图的类,...

    android 记事本demo(listview与SQLite)

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

    我总结的Android编程规范 - 薰衣草的旋律 - 博客园1

    Activity 与 Fragment 可以使用 Bundle 传递参数,并可以使用 Fragment 的 setArguments 方法传递参数。 网络请求数据模块化封装 网络请求数据模块化封装是指在 Android 应用程序中,网络请求数据需要模块化封装的...

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

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

    两个Activity之间传递参数的代码

    本篇文章将详细讲解如何在Android的两个Activity之间传递参数,并通过给出的`LoginActivity.java`和`MainActivity.java`两个文件为例进行说明。 首先,我们要了解在Android中,有两种主要的方式来传递数据: 1. ...

    安卓fragment与界面传值

    1. **使用Bundle传递参数:** 当我们创建一个新的Fragment实例时,可以通过Bundle对象将数据包装起来,然后通过setArguments()方法传递给Fragment。在Fragment的onCreate()或onCreateView()方法中,我们可以使用...

    Eclipse编写的Android Activity之间简单地传递参数应用实例

    本实例将深入讲解如何在Eclipse V4.2.0环境下,使用Intent对象来实现在Android Activity之间简单地传递参数。 首先,我们需要了解Intent的作用。Intent在Android系统中扮演着消息传递的角色,它能够启动新的...

    Android Fragment的介绍与使用案例Demo

    - Fragment可以通过无参构造函数实例化,或者通过有参构造函数和Bundle传递参数。在`onCreate()`或`onCreateView()`中从Bundle获取参数。 8. **Fragment在FragmentPagerAdapter或FragmentStatePagerAdapter中的...

    FragmentDemo

    - 可能包含了Fragment间通信的示例,如通过接口传递数据或使用Bundle传递参数。 - 可能有FragmentTransaction的使用示例,比如添加、替换Fragment的代码片段。 通过分析和学习"FragmentDemo"项目,开发者可以深入...

    Android-Android界面跳转传递参数封装

    `Android-Android界面跳转传递参数封装`这个主题主要关注如何通过编程的方式优化这一过程,提高代码的可读性和可维护性。通常,开发者会使用Intent来实现Activity之间的通信,包括启动新的Activity和传递数据。下面...

    Fragment的使用demo

    3. **Fragment的通信**:Fragment与Activity之间的通信可以通过接口、Bundle传递参数或者使用ViewModel来实现。例如,通过设置监听器让Activity监听Fragment的事件,或者使用setArguments()方法将数据封装在Bundle中...

    安卓app开发项目-welon-FragmentBasics-2096638(源码).zip

    3. **Fragment通信**:掌握Fragment与Fragment之间,以及Fragment与Activity之间的数据传递和事件处理,比如使用Bundle传递参数,实现Interface回调,或者使用ViewModel进行通信。 4. **Fragment的替换和事务管理**...

    Fragment_Demo2

    3. **Fragment通信**:Fragment与Activity之间的通信可以通过接口或者使用Bundle传递参数。如果Fragment之间需要通信,可以使用EventBus、LiveData或者自定义事件总线等方法。 4. **Fragment的保存和恢复状态**:当...

Global site tag (gtag.js) - Google Analytics