Android Inent 传递类对象

来源:互联网 发布:动态规划的最优化原理 编辑:程序博客网 时间:2024/04/29 18:35
异常报错
Android  NotFoundException: String resource ID #0x1
类型转换错误




/**
* 出现的情况:有时候我们需要将 类对象 从这个界面 传递到另一个界面
* 如 在一个 ListView 的onitemonclickListener 中点击其中的一个条目,
*    我们需要获得条目中的信息,而我们生成的ListView 的中的条目信息是由
*    一个JavaBean 对象来获取到的,所以我们就需要传递这个 item 上的 类对象
*/


public class Users implements Serializable {


private String name ;
private int age ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}


Users users  = new Users();
arrayList = new ArrayList<Users>();
for (int i = 0; i < 5; i++) {
users.setAge(11+i);
users.setName("www"+i);
arrayList.add(users);
}


Users user2  = new Users();
Intent intent  = new Intent(getApplicationContext(), Intent_Activity.class);
//Bundle就是存储数据的键值对,可以用在两个Activity中传递数据,可以添加到Intent中
Bundle bundle  = new Bundle();
/**
*   传递 类对象 必须,User 必须实现了Serializable接口 或者 Parcelable 接口
*/
/**
*  参数解释 : String key   Serializable value  键值对
  * String key  Parcelable value 键值对
*/
bundle.putSerializable("user1", user2); // 传递 类对象
/**
*  类对象必须 实现 Serializable
*  public class Users implements Serializable {}
*/
bundle.putSerializable("user2", (Serializable) arrayList);  // 传递 List 对象
/**
*  List <Users> 中间的类对象必须实现 Serializable
*   public class Users implements Serializable {}
*/
// intent 设置 额外的信息。

bundle.putSerializable("user3", (Serializable) linked);  // 传递 LinkedList 对象

intent.putExtras(bundle);
startActivity(intent);


在Intent_Activity 获取 类对象  和  List<Users>


Users user = (Users) getIntent().getSerializableExtra("user1");
List<Users> user2  =  (List<Users>) getIntent().getSerializableExtra("user2");





0 0