我正在使用跟随类,我将其作为对象: http://pastebin.com/rKmtbDgF
我正试图通过以下方式传递它:
Intent booklist = new Intent(getBaseContext(), BookList.class);
Bundle bundle = new Bundle();
bundle.putParcelable("imageManager", (Parcelable) im);
booklist.putExtras(bundle);
booklist.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(booklist);
我正试图通过以下方式接收它:
ImageManager im = (ImageManager) getIntent().getExtras().getParcelable("imageManager");
我收到以下错误:
java.lang.ClassCastException: com.example.example.ImageManager
答案 0 :(得分:0)
尝试以下帖子。
How can I make my custom objects Parcelable?
问题是ImageManager不是可比对象。所以这给出了施法错误。 如果imageManager是你的,你应该让类实现Pracabale,就像sais上面的url一样。
编辑:
以上应该是做Parceables的正确方法, 但在你的情况下,我真的会说你不应该在不同的活动之间传递ImageManager。因为您在ImageManager类中使用的上下文将被处理..并且您肯定会收到错误。
那你为什么不改编该类的新实例而只将Bitmap传递给它(在将该位图与其他非上下文相关的信息转移到该过程之后)。
答案 1 :(得分:0)
go here,并粘贴您的类结构。它将为您创建parcelable类,然后您可以轻松地围绕活动传递您的对象。
答案 2 :(得分:0)
最简单的方法是实现Serializable ..
import java.io.Serializable;
@SuppressWarnings("serial")
public class Student implements Serializable {
public Student(int age, String name){
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
private int age;
private String name;
}
将对象从活动A发送到活动B
Student student = new Student (18,"Zar E Ahmer");
Intent i = new Intent(this, B.class);
i.putExtra("studentObject", student);
startActivity(i);
在活动B中获取对象。
Intent i = getIntent();
Student student = (Student)i.getSerializableExtra("studentObject");