如何将一个对象传递给另一个activity?如果对象已经实现了一个接口(所以它不能实现 Parcelable)?
How to pass an object to another activity? If the object already implements an interface (so it can't implement Parcelable)?
我正在尝试将对象从一个 activity 传递到另一个,我知道我应该使用 Parcelable
或 Serializable
但我的对象 class 实现了一个接口已经。有没有办法解决?
对象可以实现多个接口:
class MyClass implements Interface1, Parcelable {
// Implement each interface
}
好的!一个class可以实现多个接口。您只需要在 class 声明中用逗号分隔每个,就像这样...
public class YourClass implements interface1, interface2, interface3 {
//...
}
一个对象不能扩展多个class但可以实现多个接口。
我认为正确的做法是使用 Intent.putExtras() - 您可以在其中传递原始数据类型 + String、Bundle、Parcelable、Serializable 类型的对象。您只是在使用 key/value 对。然后你可以通过 Intent.getExtras() 获取你的数据。一切都很简单。另请查看此链接,它们适用于初学者,但确实很有帮助:http://developer.android.com/guide/components/intents-filters.html and http://www.vogella.com/tutorials/AndroidIntent/article.html。如果问题更深层次 - 请描述它。谢谢
Parcelable and `Serializable` are the way but little complex. an easy solution is just use `Gson` or any other JSON library..
第一个 activity.
String objJson = new Gson().toJson(object);
intent.putExtra("key",objJson);
在你的第二个 activity
YourClass yourClass = new Gson().fromJson(getIntent().getStringExtra("key"),YourClass.class) ;
对于 Gson 库,检查这个 link http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm
我正在尝试将对象从一个 activity 传递到另一个,我知道我应该使用 Parcelable
或 Serializable
但我的对象 class 实现了一个接口已经。有没有办法解决?
对象可以实现多个接口:
class MyClass implements Interface1, Parcelable {
// Implement each interface
}
好的!一个class可以实现多个接口。您只需要在 class 声明中用逗号分隔每个,就像这样...
public class YourClass implements interface1, interface2, interface3 {
//...
}
一个对象不能扩展多个class但可以实现多个接口。
我认为正确的做法是使用 Intent.putExtras() - 您可以在其中传递原始数据类型 + String、Bundle、Parcelable、Serializable 类型的对象。您只是在使用 key/value 对。然后你可以通过 Intent.getExtras() 获取你的数据。一切都很简单。另请查看此链接,它们适用于初学者,但确实很有帮助:http://developer.android.com/guide/components/intents-filters.html and http://www.vogella.com/tutorials/AndroidIntent/article.html。如果问题更深层次 - 请描述它。谢谢
Parcelable and `Serializable` are the way but little complex. an easy solution is just use `Gson` or any other JSON library..
第一个 activity.
String objJson = new Gson().toJson(object);
intent.putExtra("key",objJson);
在你的第二个 activity
YourClass yourClass = new Gson().fromJson(getIntent().getStringExtra("key"),YourClass.class) ;
对于 Gson 库,检查这个 link http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm