代码演示UI图:
界面1(程序第一界面) 界面2(跳转到的界面)
界面3(界面2回传数据到界面1)
1、用Intent传递,关键代码:
MainActivity.java(界面1——主界面)
btnStartAty1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);
i.setClassName("com.demo.activitylc", "com.demo.activitylc.Aty1");
i.putExtra("txt", "你好,我是activity_main传递来的数据");
startActivity(i);
}
});
Aty1.java(界面2——跳转到的界面)
tvOut = (TextView) findViewById(R.id.tvOut);
tvOut.setText(getIntent().getStringExtra("txt"));
2、使用Bundle传递复杂点的数据,关键代码:
MainActivity.java(界面1——主界面)
btnStartAty1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);
Bundle data = new Bundle();
data.putString("txt", "我是MainActivity.java传递来的数据");
i.putExtras(data);
startActivity(i);
}
});
Aty1.java(界面2——跳转到的界面)
tvOut = (TextView) findViewById(R.id.tvOut);
//使用Bundle可以传递较为复杂的数据
Bundle data = getIntent().getExtras();
String txt = data.getString("txt");
tvOut.setText(txt);
3、界面2回传数据到界面1,要重写onActivityResult()方法,关键代码:
MainActivity.java(界面1——主界面)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvOut = (TextView) findViewById(R.id.tvOut);
btnStartAty1 = (Button) findViewById(R.id.btnStartAty1);
btnStartAty1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,Aty1.class);
Bundle data = new Bundle();
data.putString("txt", "我是MainActivity.java传递来的数据");
i.putExtras(data);
startActivityForResult(i, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String result = data.getStringExtra("result");
tvOut.setText(result);
super.onActivityResult(requestCode, resultCode, data);
}
Aty1.java(界面2——跳转到的界面)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aty1);
btnClose = (Button) findViewById(R.id.btnClose);
//点击关闭按钮的时候,回传数据给MainActivity.java对应的xml文件
btnClose.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent();
i.putExtra("result", "我是Aty1回传的数据");
setResult(0,i);
finish();
}
});
tvOut = (TextView) findViewById(R.id.tvOut);
//使用Bundle可以传递较为复杂的数据
Bundle data = getIntent().getExtras();
String txt = data.getString("txt");
tvOut.setText(txt);;
}
完整代码链接: