1. 程式人生 > >bundle及intent傳遞接收資料

bundle及intent傳遞接收資料

在兩個Activity傳遞資料是我們通常都用intent來傳遞;

傳遞簡單資料型別時可以直接用inten.putExtras();也可以吧引數放到bundle接著intent.putExtras(bundle);

傳遞
Intent intent = new Intent();
intent.setClass(ContactActivity.this, ContactBackListActivity.class);
intent.putExtra(ContactConfig.FEED_ID, feedId); /簡單資料(比如String,int)
intent.putStringArrayListExtra(ContactConfig.EXTRA_NORMAL_AL_SELECT_CARDIDS, feedIds); //傳遞陣列arrayList<String>
activity.startActivity(intent);

接收

Intent typeIntent = getIntent();
  mFromFeedId = typeIntent.getStringExtra(ContactConfig.FEED_ID);
mSelectIdList = typeIntent.getStringArrayListExtra(ContactConfig.EXTRA_NORMAL_AL_SELECT_CARDIDS);

在兩個Acitivty中間傳遞物件 ,那麼這個物件類就要implements Serializable 或者 implements Parcelable

下面是Serializable 方式的傳遞和接收,Parcelable也一樣,mBundle.putParcelable和 getIntent().getParcelable

Extra

<span style="font-size:18px;">//傳遞
Intent intent = new Intent((ContactActivity.this, ContactBackListActivity.class);
Bundle mBundle = new Bundle(); 
mBundle.putSerializable("設定標記的key",物件Bean); 或者 mBundle.putParcelable("設定標記的key",物件Bean); 
intent.putExtras(mBundle);
startActivity(intent);

//接收
物件bean= (物件bean) getIntent().getSerializableExtra("設定標記的key");</span>