Android 学习笔记3(Activity之间参数传递)

  • 在activity跳转时传简单数据

在第一个activity中,可以如下传递参数

findViewById(R.id.btnStartAty).setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                Intent i= new Intent(MainActivity.this,TheAty.class);
                i.putExtra("data","Hello there");
                startActivity(i);
            }
        });

在第二个activity中,可以如下得到参数

private TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_the_aty);
        Intent i=getIntent();
        tv= (TextView) findViewById(R.id.tv);
        tv.setText(i.getStringExtra("data"));
  • 在activity跳转时传数据包bundle
    第一个activity
public void onClick(View v){
                Intent i= new Intent(MainActivity.this,TheAty.class);
                Bundle b= new Bundle();
                b.putString("name","Alice");
                b.putInt("age",12);
                i.putExtras(b);
                startActivity(i);
            }
        });

第二个activity

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_the_aty);
        Intent i=getIntent();
        Bundle data=i.getExtras();
        tv= (TextView) findViewById(R.id.tv);
        tv.setText(String.format("name=%s,age=%d,name1=%s",data.getString("name"),data.getInt("age"),data.getString("name1","leo")));
}

或者在两个activity中分别作如下修改
MainActivity

//i.putExtras(b);
i.putExtra("data",b);

TheAty

//Bundle data=i.getExtras();
Bundle data=i.getBundleExtra("data");
  • 在activity跳转时传递自定义值对象
    值对象:自定义的,有数据类型的对象
    使用Serializable、Parcelable方法
  • 获取被启动的activity传回的参数

你可能感兴趣的:(android)