Android 基本知识(一)

来源:互联网 发布:主力建仓优化指标 编辑:程序博客网 时间:2024/05/16 13:44

Activity 组件认识

  1. 启动Activity
    • 启动另一个Activity
    • 通过Action启动
        findViewById(R.id.btnGo).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                // 启动 new Activity                // startActivity(new Intent(MainActivity.this,Main2Activity.class));                // 启动一个 Action                startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")));            }        });
  1. 怎样在多个Activity之间传递参数
    • 传递简单的数据
    • 传递复杂的数据
    • 传递自定义值对象
    • 传递返回值

MainActivity

             @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,Main2Activity.class);                // 传递自定义对象 使用Parcelable                UserInfo info = new UserInfo("playgame");                intent.putExtra("detail",info);                // 传递自定义对象,使用Serializable                MoreInfo moreInfo = new MoreInfo("luo");                intent.putExtra("family",moreInfo);                // 复杂数据                Bundle bundle = new Bundle();                bundle.putString("name","xuqi");                bundle.putInt("age", 28);                intent.putExtra("info", bundle);                // 简单数据                intent.putExtra("msg","hello");                // 启动 new Activity                // startActivity(intent);                startActivityForResult(intent,2);                }

MainActivity2

        final Intent intent = getIntent();        // 取复杂数据        String name = intent.getExtras().getBundle("info").getString("name");        // 取简单的数据对象        String msg = intent.getExtras().getString("msg");        // 取自定义的数据对象        UserInfo detail = intent.getParcelableExtra("detail");        MoreInfo familyInfo = (MoreInfo) intent.getSerializableExtra("family");        ((TextView) findViewById(R.id.tvMsg)).setText(msg + "\n" + name + "\n" + detail.getFavorite() + "\n" + familyInfo.getWife());        findViewById(R.id.btBack).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent1 = new Intent();                intent1.putExtra("returninfo","nihao");                setResult(1, intent1);                finish();            }        });

UserInfo

public class UserInfo implements Parcelable{    public String getFavorite() {        return favorite;    }    public void setFavorite(String favorite) {        this.favorite = favorite;    }    private String favorite;    public UserInfo(String fav) {        this.favorite = fav;    }    @Override    public int describeContents() {        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        dest.writeString(getFavorite());    }    public static final Creator<UserInfo> CREATOR = new Creator<UserInfo>() {        @Override        public UserInfo createFromParcel(Parcel source) {            return new UserInfo(source.readString());        }        @Override        public UserInfo[] newArray(int size) {            return new UserInfo[size];        }    };}
0 0