不同Activity之间传递简单数据主要通过Intent,在启动另一个Activity时把数据附加到Intent中传递过去
1、简单数据
发数据的Activity
Intent i=new Intent(MainActivity.this,TheAty.class);
i.putExtra("data","hello textAndroid");
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"));
}
2、数据包
发数据的Activity
Intent i=new Intent(MainActivity.this,TheAty.class);
Bundle b=new Bundle();
b.putString("name","HelloAndroid");
b.putInt("age",2);
i.putExtras(b);
startActivity(i);
收数据的Activity
private TextView tv;
@Override
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(i.getStringExtra("data"));
tv.setText(String.format("name=%s,age=%d,name1=%s",data.getString("name"),data.getInt("age"),data.getString("name1","leo")));
若发送数据包中没有某个key,在接收数据包中可以写个默认值;若接收方写了默认值,发送方也有该Key的value,输出显示的为发送时数据的value.