- 在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传回的参数