Activity

来源:互联网 发布:淘宝贷款怎么回事 编辑:程序博客网 时间:2024/06/16 15:28

Android中的Activity的生命周期:



 

Activity页面之间如何进行数据传递??

先写两个页面

        

            

然后写两个页面相对应的class类

package com.zking.administrator.g160628_android12_activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.EditText;import android.widget.TextView;import com.zking.entity.Person;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private EditText et_main_uname;    private TextView tv_main_showThink;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et_main_uname = (EditText) findViewById(R.id.et_main_uname);        tv_main_showThink = (TextView) findViewById(R.id.tv_main_showThink);        Log.i("test","onCreate");//      String content=getIntent().getStringExtra("content");//      tv_main_showThink.setText(content);    }    public void writeThink(View view){         String uname=et_main_uname.getText().toString();         Intent intent=new Intent(this,ThinkActivity.class);        //传递基本数据类型         //intent.putExtra("uname",uname);//         intent.putExtra("uage",19);        //传递Bundle//         Bundle bundle=new Bundle();//         bundle.putString("uname",uname);//         bundle.putInt("uage",19);//         intent.putExtra("bundle",bundle);           //传递对象           Person person1=new Person(1,"静静",19);           Person person2=new Person(2,"明明",19);           Person person3=new Person(3,"雨田君",19);        ArrayList persons=new ArrayList<>();        persons.add(person1);        persons.add(person2);        persons.add(person3);        //intent.putExtra("persons",persons);        //传递对象集合        intent.putParcelableArrayListExtra("persons",persons);         //startActivity(intent);        //带有目的的跳转        startActivityForResult(intent,0x201);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        Log.i("test","onActivityResult");        String content=data.getStringExtra("content");        tv_main_showThink.setText(content);    }}

package com.zking.administrator.g160628_android12_activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.TextView;import com.zking.entity.Person;import java.util.List;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);        //获取第一个页面传递过来的数据//        String uname=getIntent().getStringExtra("uname");//        int uage=getIntent().getIntExtra("uage",0);        //接受bundle//        Bundle bundle=getIntent().getBundleExtra("bundle");//        String uname=bundle.getString("uname");//        int uage=bundle.getInt("uage");        //接受对象        //Person person= (Person) getIntent().getSerializableExtra("person");        //Person person=getIntent().getParcelableExtra("person");        //接受对象集合        List persons=getIntent().getParcelableArrayListExtra("persons");        tv_think_showName.setTextSize(30);        for (Person person : persons) {            tv_think_showName.setText(tv_think_showName.getText()+"\n"+person.toString());        }    }    public void ok(View view){        String content=et_think_content.getText().toString();        Intent intent=new Intent();        intent.putExtra("content",content);        //设置结果        setResult(0x100,intent);        //自杀(干掉自己,干掉当前的Activity)        finish();        //startActivity(intent);    }}

因为博主这里还在两个页面之间传递了对象,所以再写个实体类

package com.zking.entity;import android.os.Parcel;import android.os.Parcelable;import java.io.Serializable;/** * Created by Administrator on 2017/6/16 0016. */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 CREATOR = new Creator() {        @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);    }}

最后配置

                                                                                        







原创粉丝点击