您的位置:首页 > 其它

Activity页面之间数据传递

2017-06-16 22:31 204 查看
要传递的对象集合(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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
          //获取输入框的IDet_main_uname = (EditText) findViewById(R.id.et_main_uname);
           //获取文本框的IDtv_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);}@Overrideprotected 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的代码:
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/tv_think_showName"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:lines="5"android:hint="请写心情"android:gravity="top"android:id="@+id/et_think_content"/><Buttonandroid: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[/b];@Overrideprotected 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();}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: