關於android傳遞物件Parcelable序列化的問題
阿新 • • 發佈:2018-12-26
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());
}
}
}