Intent 頁面跳轉傳值
阿新 • • 發佈:2019-02-18
傳送方:
Intent intent = new Intent(); intent.putExtra("name", "諸葛亮"); intent.putExtra("age", 50); intent.putExtra("IQ", 200.0f); intent.setClass(MainActivity.this, SecondActivity.class); MainActivity.this.startActivity(intent);
接受方:
Intent intent = getIntent(); String name = intent.getStringExtra("name"); int age = intent.getIntExtra("age", 0); float IQ = intent.getFloatExtra("IQ", 0.0f); textview2.setText("name:"+name+",age:"+age+",IQ:"+IQ);
第四種方法:(推薦)
物件類要實現Parclelable介面
傳送方:
Intent intent = new Intent(); Person person = new Person("孫悟空",500,55.6f); intent.putExtra("person", person); intent.setClass(MainActivity.this, SecondActivity.class); startActivity(intent);
接受方:
Intent intent = getIntent(); Person person = intent.getParcelableExtra("person"); textview = (TextView) findViewById(R.id.textview); textview.setText(person.toString());
物件類:
public class Person implements Parcelable { private String name; private int age; private float weight; public Person() { super(); // TODO Auto-generated constructor stub } public Person(String name, int age, float weight) { super(); this.name = name; this.age = age; this.weight = weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public float getWeight() { return weight; } public void setWeight(float weight) { this.weight = weight; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", weight=" + weight + "]"; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeInt(age); dest.writeFloat(weight); } public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() { public Person createFromParcel(Parcel in) { return new Person(in); } public Person[] newArray(int size) { return new Person[size]; } }; private Person(Parcel in) { name = in.readString(); age = in.readInt(); weight = in.readFloat(); } }