要传递的对象集合(Person实体类)的代码:
public class Person implements Parcelable{ private int pid; private String pname; private int page; public Person() { } public Person(int pid, String pname, int page) { this.pid = pid; this.pname = pname; this.page = page; } protected Person(Parcel in) { pid = in.readInt(); pname = in.readString(); page = in.readInt(); } public static final Creator<Person> CREATOR = new Creator<Person>() { @Override public Person createFromParcel(Parcel in) { return new Person(in); } @Override public Person[] newArray(int size) { return new Person[size]; } }; public int getPid() { return pid; } public void setPid(int pid) { this.pid = pid; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } @Override public String toString() { return "Person{" + "pid=" + pid + ", pname='" + pname + '\'' + ", page=" + page + '}'; } @Override public int describeContents() { return 0; } //把属性写到序列化中 @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(pid); dest.writeString(pname); dest.writeInt(page); } }
MainActivity的代码:
<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入用户名:" android:id="@+id/et_main_uname" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="写心情" android:onClick="writeThink" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_main_showThink" />
设置它的排列方式为垂直排列
MainActivity的activity跳转的代码
private EditText et_main_uname; private TextView tv_main_showThink; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
//获取输入框的ID et_main_uname = (EditText) findViewById(R.id.et_main_uname);
//获取文本框的ID tv_main_showThink = (TextView) findViewById(R.id.tv_main_showThink); Log.i("test","onCreate"); }
//写心情的方法
public void writeThink(View view){
//获取输入框输入的内容
String uname=et_main_uname.getText().toString();
//把对象集合传递到ThinkActivity页面 Intent intent=new Intent(this,ThinkActivity.class);
//实例化对象 Person person1=new Person(1,"静静",19); Person person2=new Person(2,"明明",19); Person person3=new Person(3,"雨田君",19);
//实例化Person集合
ArrayList<Person> persons=new ArrayList<>();
//将对象加入Person集合 persons.add(person1); persons.add(person2); persons.add(person3); //传递对象集合 intent.putParcelableArrayListExtra("persons",persons); startActivityForResult(intent,0x201); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data);
//获取心情输入框内容
String content=data.getStringExtra("content");
//给输入框设置获取到的ThinkActivity的心情输入框内容 tv_main_showThink.setText(content); }
跳转的activity:
ThinkActivity的代码:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_think_showName" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="5" android:hint="请写心情" android:gravity="top" android:id="@+id/et_think_content" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="确定" android:onClick="ok" />
ThinkActivity代码:
public class ThinkActivity extends AppCompatActivity { private TextView tv_think_showName; private EditText et_think_content; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_think); tv_think_showName = (TextView) findViewById(R.id.tv_think_showName); et_think_content = (EditText) findViewById(R.id.et_think_content); //接受对象集合 List<Person> persons=getIntent().getParcelableArrayListExtra("persons");
//设置文本大小 tv_think_showName.setTextSize(30);
//循环遍历Person集合
for (Person person : persons) {
//给文本框设置 tv_think_showName.setText(tv_think_showName.getText()+"\n"+person.toString()); } }
//返回MainActivity并传递心情内容 public void ok(View view){
//获取输入框内容
String content=et_think_content.getText().toString();
//new一个传递员
Intent intent=new Intent();
//intent开始传递内容 intent.putExtra("content",content); //设置结果 setResult(0x100,intent); //自杀(干掉自己,干掉当前的Activity) finish(); } }