1. 程式人生 > >關於android傳遞物件Parcelable序列化的問題

關於android傳遞物件Parcelable序列化的問題

package com.example.parceldemo; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 得到傳過來的intent Intent ii = getIntent(); // 從intent裡面取出action的值判斷是否等於字串abc。如果不等於,(本類實現自己給自己傳值。) // 就建立物件,設定相應的值,傳值過去,如果是list就用list的方式傳值,傳物件用parcelable if (!ii.getAction().equals("abc")) { Teacher t1 = new Teacher(); t1.setName("aaaaa"); t1.setAge(1111); Teacher t2 = new Teacher(); t2.setName("bbbbb"); t2.setAge(2222); // 宣告一個list。裡面放多個teacher
ArrayList<Teacher> list = new ArrayList<Teacher>(); list.add(t1); list.add(t2); Intent i = new Intent(this, MainActivity.class); // 設定action.這裡是為了上面做判斷區分的。 i.setAction("abc"); // 傳值傳一個list i.putParcelableArrayListExtra("TLIST", list); startActivity(i); } else { // 如果接受了傳過傳過來的值,就取出 List<Teacher> list = ii.getExtras().getParcelableArrayList("TLIST"); Log.d("T", list.toString()); } } }