手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android 不同Activity间数据的传递 Bundle对象的应用
Android 不同Activity间数据的传递 Bundle对象的应用
摘要:在应用中,可能会在当跳转到另外一个Activity的时候需要传递数据过去,这时就可能用Bundle对象;在MainActivity中,有一个...

在应用中,可能会在当跳转到另外一个Activity的时候需要传递数据过去,这时就可能用Bundle对象;

在MainActivity中,有一个导航至BActivity的Intent,

Intent

复制代码 代码如下:

{

Intent intent = new Intent(Context context, Class<?> class);

//new一个Bundle对象,并将要传递的数据导入,Bunde相当于Map<Key,Value>结构

Bundle bundle = new Bundle();

bundle.putString("name","Livingstone");

bundle.putXXX(XXXKey, XXXValue);

//将Bundle对象添加给Intent

intent.putExtras(bundle);

//调用intent对应的Activity

startActivity(intent);

}

在BActivity中,通过以下代码获取MainActivity所传过来的数据

Bundle bundle = this.getIntent().getExtras();// 获取传递过来的封装了数据的Bundle

String name = bundle.getString("name");// 获取name_Key对应的Value

// 获取值时,添加进去的是什么类型的获取什么类型的值

--> bundle.getXXX(XXXKey);

return XXXValue

上面讲述的都是一般的基本数据类型,当需要传递对象的时候,可以使该对象实现Parcelable或者是Serializable接口;

通过Bundle.putParcelable(Key,Obj)及Bundle.putSerializable(Key,Obj)方法将对象添加到Bundle中,再将此Bundle对象添加到Intent中!

在跳转的目标页面通过Intent.getParcelableExtra(Key)获取实现了Parcelable的对象;

在跳转的目标页面通过Intent.getSerializableExtra(Key)获取实现了Serializable的对象;

今天在研究的时候发现,Intent.putExtra(Key,Value);其实也可以传递数据,包括上面所讲的对象!

实现Serializable接口很简单,不再描述;

下面描述实现Parcelable接口:

复制代码 代码如下:

public class Book implements Parcelable {

private String bookName;

private String author;

public static final Parcelable.Creator CREATOR = new Creator() {// 此处必须定义一个CREATOR成员变量,要不然会报错!

@Override

public Book createFromParcel(Parcel source) {// 从Parcel中获取数据,在获取数据的时候需要通过此方法获取对象实例

Book book = new Book();

book.setAuthor(source.readString());// 从Parcel读取数据,读取数据与写入数据的顺序一致!

book.setBookName(source.readString());

return book;

}

@Override

public Book[] newArray(int size) {

return new Book[size];

}

};

@Override

public int describeContents() {

return 0;

}

@Override// 写入Parcel

public void writeToParcel(Parcel dest, int flags) {

dest.writeString(author);// 将数据写入Parcel,写入数据与读取数据的顺序一样!

dest.writeString(bookName);

}

}

关于Parcel,大概查阅了一下描述:

一个final类,用于写或读各种数据,所有的方法不过就是writeValue(Object)和read(ClassLoader)!(个人翻译理解)

【Android 不同Activity间数据的传递 Bundle对象的应用】相关文章:

Android控件之EditView常用属性及应用方法

基于Android ContentProvider的总结详解

Android 自定义View的使用介绍

Android 原始资源文件的使用详解

Android TabWidget切换卡的实现应用

Android实现Activities之间进行数据传递的方法

android 触屏的震动响应接口调用方法

Android中SQLite数据库操作

Android开发之多个Activity间的交互

Android中BroadcastReceiver(异步接收广播Intent)的使用

精品推荐
分类导航