一、简单传值
1、修改MainActivity
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //强制转换为Button,必然放在setContentView之后 btnSatrtAty1=(Button)findViewById(R.id.btnStartAty1); //给按钮设定事件监听器 btnSatrtAty1.setOnClickListener( //实现OnClickListener接口的了匿名类 new View.OnClickListener() { @Override public void onClick(View view) { //事件中启动Aty1 //参数一:MainActivity 的实例 //参数二:要启动的Activity的类的定义为Class类型 //this 指实现OnClickListener的内部类 Intent i=new Intent(MainActivity.this,Aty1.class); i.putExtra("txt","Hello Aty1"); startActivity(i); } }); System.out.print("onCreate"); }
2、修改Aty1接受数据并显示
tvOut=(TextView)findViewById(R.id.tvOut); tvOut.setText(getIntent().getStringExtra("txt"));
二、Bundle传值复杂一点数据
1、修改MainActivity通过Bundle传值
Intent i=new Intent(MainActivity.this,Aty1.class); Bundle data=new Bundle(); data.putString("","Hello Aty1"); i.putExtras(data); startActivity(i);
2、修改Aty1接受数据并显示
tvOut=(TextView)findViewById(R.id.tvOut); Bundle data=getIntent().getExtras(); String txt=data.getString("txt"); tvOut.setText(txt);
二、取Activity传回的传
不可以使用startActivity改用startActivityForResult
1、修改Aty1在页面关闭时设置返回值
btnClose=(Button)findViewById(R.id.btnStartAty1);
btnClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { Intent i=new Intent(); i.putExtra("result","Hello MainActivity"); setResult(0, i); finish(); } });
2、修改MainActivity接受回传值
protected void onActivityResult(int requestCode, int resultCode, Intent data) { String result=data.getStringExtra("result"); tvOut.setText(result); super.onActivityResult(requestCode, resultCode, data); }