Android:如何将Parcelable对象传递给intent并使用getParcelable方法捆绑?

为什么bundle有getParcelableArrayListgetParcelable方法; 但Intent只有putParcelableArrayListExtra方法? 我可以只传递object<T> ,而不是一个元素的ArrayList ? 那么, getParcelable是什么?

意图提供了一堆重载putExtra()方法。

假设你有一个Foo类实现了Parcelable,把它放入一个Activity中的Intent:

 Intent intent = new Intent(getBaseContext(), NextActivity.class); Foo foo = new Foo(); intent.putExtra("foo ", foo); startActivity(intent); 

为了从另一个活动意图获得它:

 Foo foo = getIntent().getExtras().getParcelable("foo"); 

希望这可以帮助。

 Parcelable p[] =getIntent().getParcelableArrayExtra("parcel"); 

首先使用给定的技术创buildParcelable

 public static CreditCardDetail newInstance(CreditCardItemBO creditCardItem) { CreditCardDetail fragment = new CreditCardDetail(); Bundle args = new Bundle(); args.putParcelable(CREDIT_KEY,creditCardItem); fragment.setArguments(args); return fragment; } 

得到它像

  if(getArguments() != null) { creditCardItem = getArguments().getParcelable(CREDIT_KEY); } 

哪里

 public static final String CREDIT_KEY = "creditKey"; 

记住你的模型必须实现Parcelable接口和静态CREATOR方法。 这种情况是为了列表

  private static final String MODEL_LIST = "MODEL_LIST"; public MainFragment() {} public static MainFragment newInstance(ArrayList<YourModel> models) { MainFragment fragment = new MainFragment(); Bundle args = new Bundle(); args.putParcelableArrayList(MODEL_LIST,models); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { ArrayList<YourModel> models = getArguments().getParcelableArrayList(MODEL_LIST); } }