Android将对象传递给另一个活动的最佳方式

时间:2014-11-03 10:17:38

标签: android

我现在开始使用android,我想知道哪个是将对象从一个活动传递到另一个活动的最佳方法。

到目前为止我已经

  • Seriliazable
  • Parcelable
  • 并且总是有另一个选项来传递ID并再次创建对象 通过数据库

我应该使用哪一个? 感谢

1 个答案:

答案 0 :(得分:0)

创建意图对象时,可以使用以下两种方法 用于在两个活动之间传递对象。

putParceble

putSerializable

您可以使用ParcelableSerializable来实现此类工作。

然后,您可以跨活动传递自定义类。我发现这非常有用。

以下是我正在使用的一小段代码

CustomListing currentListing = new CustomListing();
Intent i = new Intent();
Bundle b = new Bundle();
b.putParcelable(Constants.CUSTOM_LISTING, currentListing);
i.putExtras(b);
i.setClass(this, SearchDetailsActivity.class);
startActivity(i);

在新开始的活动代码中会是这样的......

Bundle b = this.getIntent().getExtras();
if(b!=null)
    mCurrentListing = b.getParcelable(Constants.CUSTOM_LISTING);

此外,您可以让自定义类实现Serializable接口,然后您可以使用putExtra(Serializable..)方法的Intent#putExtra()变体在intent中传递对象实例。

PSEUDO代码:

//to pass :
   intent.putExtra("MyClass", obj);  

// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");