【问题标题】:How to pass an object to another activity? If the object already implements an interface (so it can't implement Parcelable)?如何将对象传递给另一个活动?如果对象已经实现了一个接口(所以它不能实现 Parcelable)?
【发布时间】:2016-04-25 14:03:19
【问题描述】:

我正在尝试将一个对象从一个活动传递到另一个活动,我知道我应该使用ParcelableSerializable,但我的对象类已经实现了一个接口。有没有办法解决?

【问题讨论】:

  • 一个对象不能扩展多个类,但可以实现多个接口。

标签: android parcelable serializable


【解决方案1】:

对象可以实现多个接口:

class MyClass implements Interface1, Parcelable {
  // Implement each interface
}

【讨论】:

  • 哇,我知道。对不起,非常感谢!我会尽快将您的答案标记为正确。
【解决方案2】:

我认为正确的做法是使用 Intent.putExtras() - 您可以在其中传递原始数据类型 + String、Bundle、Parcelable、Serializable 类型的对象。您只是在使用键/值对。之后,您可以通过 Intent.getExtras() 获取数据。一切都很简单。也看看这个链接,它们是为大人物准备的,但真的很有帮助:http://developer.android.com/guide/components/intents-filters.htmlhttp://www.vogella.com/tutorials/AndroidIntent/article.html。如果问题在更深的地方 - 请描述它。谢谢。

【讨论】:

    【解决方案3】:

    当然!一个类可以实现多个接口。你只需要在你的类声明中用逗号分隔每一个,就像这样......

    public class YourClass implements interface1, interface2, interface3 { 
        //...
    }
    

    【讨论】:

      【解决方案4】:

      一个对象不能扩展多个类,但可以实现多个接口。

      【讨论】:

        【解决方案5】:
        Parcelable and `Serializable` are the way but little complex. an easy solution is just use `Gson` or any other JSON library..
        

        在第一个活动中。

        String objJson = new Gson().toJson(object);
        intent.putExtra("key",objJson);
        

        在你的第二个活动中

        YourClass yourClass = new Gson().fromJson(getIntent().getStringExtra("key"),YourClass.class) ;
        

        对于 Gson 库,请查看此链接 http://www.java2s.com/Code/Jar/g/Downloadgson222jar.htm

        【讨论】:

          猜你喜欢
          • 2015-08-26
          • 1970-01-01
          • 1970-01-01
          • 2012-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-18
          相关资源
          最近更新 更多