博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——Android Bundle类(转)
阅读量:4311 次
发布时间:2019-06-06

本文共 2766 字,大约阅读时间需要 9 分钟。

今天发现自己连Bundle类都没有搞清楚,于是花时间研究了一下。

根据google官方的文档()

 

Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.”

类继承关系:

java.lang.Object

     android.os.Bundle
Bundle类是一个final类:
public final class
Bundle
extends Objectimplements Parcelable Cloneable

两个activity之间的通讯可以通过bundle类来实现,做法就是:

(1)新建一个bundle类

Bundle mBundle = new Bundle();

(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)

mBundle.putString("Data", "data from TestBundle");

(3)新建一个intent对象,并将该bundle加入这个intent对象

Intent intent = new Intent();    intent.setClass(TestBundle.this, Target.class);    intent.putExtras(mBundle);

完整代码如下:

 

android mainfest.xml如下:

两个类如下:intent从TestBundle类发起,到Target类。

 

类1:TestBundle类:

import android.app.Activity;    import android.content.Intent;    import android.os.Bundle;    import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;    public class TestBundle extends Activity {              private Button button1;      private OnClickListener cl;       public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.main);                    button1 = (Button) findViewById(R.id.button1);          cl = new OnClickListener(){              @Override              public void onClick(View arg0) {                  // TODO Auto-generated method stub                  Intent intent = new Intent();                    intent.setClass(TestBundle.this, Target.class);                    Bundle mBundle = new Bundle();                    mBundle.putString("Data", "data from TestBundle");//压入数据                    intent.putExtras(mBundle);                    startActivity(intent);              }          };          button1.setOnClickListener(cl);      }  }

类2: Target

import android.app.Activity;    import android.os.Bundle;      public class Target extends Activity{          public void onCreate(Bundle savedInstanceState) {                      super.onCreate(savedInstanceState);            setContentView(R.layout.target);            Bundle bundle = getIntent().getExtras();    //得到传过来的bundle          String data = bundle.getString("Data");//读出数据            setTitle(data);          }    }

布局文件:

 

main.xml

target.xml

String.xml

Hello World, TestBundle!
测试Bundle用法
点击跳转
来到target activity

结果:

 

跳转结果:

 

 

转载于:https://www.cnblogs.com/Chenshuai7/p/5290866.html

你可能感兴趣的文章
Git学习系列-Git基本概念
查看>>
c#多个程序集使用app.config 的解决办法
查看>>
Linux+Apache+PHP+MySQL服务器环境配置(CentOS篇)
查看>>
Linux下获取本机IP地址的代码
查看>>
(C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误
查看>>
flex布局
查看>>
python-----python的文件操作
查看>>
java Graphics2d消除锯齿,使字体平滑显示
查看>>
控件中添加的成员变量value和control的区别
查看>>
Spring Boot Docker 实战
查看>>
Div Vertical Menu ver3
查看>>
Git简明操作
查看>>
InnoDB为什么要使用auto_Increment
查看>>
课堂练习之买书打折最便宜
查看>>
定义函数
查看>>
网络虚拟化技术(二): TUN/TAP MACVLAN MACVTAP
查看>>
MQTT协议笔记之mqtt.io项目HTTP协议支持
查看>>
(转)jQuery中append(),prepend()与after(),before()的区别
查看>>
Tecplot: Legend和图像中 Dashed/Dash dot/Long dash 等虚线显示没有区别的问题
查看>>
win8 开发之旅(2) --连连看游戏开发 项目错误的总结
查看>>