在开发过程中经常会出现一个activity的信息要传递给另一个activity,还有就是要上一个activity的数据传回之前的activity
首先先使用正向传递:
public class IntentDemo extends Activity {
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(IntentDemo.this, Other.class);
// 在Intent中传递数据
intent.putExtra("name", "AHuier");
intent.putExtra("age", 22);
intent.putExtra("address", "XiaMen");
// 启动Intent
startActivity(intent);
}
});
}
}
要接收的页面
public class Other extends Activity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
textView = (TextView) findViewById(R.id.msg);
Intent intent = getIntent();
int age = intent.getIntExtra("age", 0);
String name = intent.getStringExtra("name");
String address = intent.getStringExtra("address");
textView.setText("My age is " + age + "\n" + "My name is " + name + "\n" + "My address "
+ address);
}
下面是信息传回
在要返回的页面里写入
Intent backIntent = new Intent();
backIntent.putExtra("message", displayContents);
CaptureActivity.this.setResult(RESULT_OK, backIntent);
CaptureActivity.this.finish();
在接的页面里使用
startActivityForResult跳转,
onActivityResult负责接收数据
Intent intent = new Intent(MainActivity.this, CaptureActivity.class);
startActivityForResult(intent, 0);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
String str = data.getExtras().getString("message");
tv.setText(str);
}
}
在使用返回的时候记得使用finish返回到上一个,页面记得要注册一下