2014-2-18-Bundle 缓存传值
来源:互联网 发布:程序员小说 编辑:程序博客网 时间:2024/06/06 04:55
Bundle savedInstanceState
使用 Bundle 进行值传递 与 保存 需要给进行传递的对象套一层外壳 及继承Parcelable 的自定义对象
不然在进行保存时会抛出异常
对自定义对象 ArrayList<WifiIntro> 数据组 进行保存 示例:
Parcelable 外壳实现
public class Person implements Parcelable {
public ArrayList<WifiIntro> intros;
public ArrayList<WifiIntro> getIntros() {
return intros;
}
public void setIntros(ArrayList<WifiIntro> intros) {
this.intros = intros;
}
public String name;
public Person(ArrayList<WifiIntro> intros) {
// TODO Auto-generated constructor stub
this.intros = intros;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(intros);
dest.writeString(name);
}
public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
// 重写Creator
@Override
public Person createFromParcel(Parcel source) {
Person p = new Person(new ArrayList<WifiIntro>());
p.name = source.readString();
return p;
}
@Override
public Person[] newArray(int size) {
// TODO Auto-generated method stub
return null;
}
};
示例中使用到的KEY:
private static final String KEY_CONTENT = "TestFragment:Content";
bundle 保存传递内容:
if (null != mContent && mContent.size() > 0) {
Person list = new Person(mContent);
bundle.putParcelable(KEY_CONTENT, list);
}
bundle 获取传递内容:
Person list = bundle.getParcelable(KEY_CONTENT);
ArrayList<WifiIntro> lContent = list.getIntros();
if (null != lContent && lContent.size() > 0) {
mContent = new ArrayList<WifiIntro>(lContent);
}
使用 Bundle 进行值传递 与 保存 需要给进行传递的对象套一层外壳 及继承Parcelable 的自定义对象
不然在进行保存时会抛出异常
对自定义对象 ArrayList<WifiIntro> 数据组 进行保存 示例:
Parcelable 外壳实现
public class Person implements Parcelable {
public ArrayList<WifiIntro> intros;
public ArrayList<WifiIntro> getIntros() {
return intros;
}
public void setIntros(ArrayList<WifiIntro> intros) {
this.intros = intros;
}
public String name;
public Person(ArrayList<WifiIntro> intros) {
// TODO Auto-generated constructor stub
this.intros = intros;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(intros);
dest.writeString(name);
}
public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
// 重写Creator
@Override
public Person createFromParcel(Parcel source) {
Person p = new Person(new ArrayList<WifiIntro>());
p.name = source.readString();
return p;
}
@Override
public Person[] newArray(int size) {
// TODO Auto-generated method stub
return null;
}
};
示例中使用到的KEY:
private static final String KEY_CONTENT = "TestFragment:Content";
bundle 保存传递内容:
if (null != mContent && mContent.size() > 0) {
Person list = new Person(mContent);
bundle.putParcelable(KEY_CONTENT, list);
}
bundle 获取传递内容:
Person list = bundle.getParcelable(KEY_CONTENT);
ArrayList<WifiIntro> lContent = list.getIntros();
if (null != lContent && lContent.size() > 0) {
mContent = new ArrayList<WifiIntro>(lContent);
}
0 0
- 2014-2-18-Bundle 缓存传值
- Bundle实现传值
- EhCache实现OSGi缓存bundle
- Android bundle 传值方法
- Android Bundle对象传值
- 跳转传值(intent,bundle)
- Bundle(2)
- Bundle传值与取值
- 在Activity之间传值,遍历Bundle
- Android中使用Bundle页面传值
- Bundle传数据
- 用Bundle 传数据
- Bundle
- Bundle
- Bundle
- Bundle
- BUNDLE
- bundle
- Ubuntu 12.04 64bit 无法安装ia32-libs 解决方法
- 关于java.lang.NullPointerException这个异常
- Erb 文件里,我将<% %>写入了 Javascript 的 function 里,为什么仍旧被执行?
- CocoaPods安装和使用教程
- 区分Activity的四种加载模式(Activity跳转管理) 和 Intent的常用Flag参数
- 2014-2-18-Bundle 缓存传值
- 安装win8后打开一些软件,比如锐捷助手,提示MFC42D.dll丢失,无法打开程序,还有wpcap.dll,packet.dll
- 关于android中蓝牙的开发
- 《Java解惑》系列——01表达式之谜——谜题08:Dos Equis
- 一小时搞定DIV+CSS布局-固定页面开度布局
- 动画状态机(1)
- Kafka data structures in Zookeeper
- 怎么使网站的在baidu中每天快照?
- 电话号码可以恢复吗