Intent解决Android应用的各项组件之间的通讯。
跳转到另一个Activity并传值
MainActivity页面–>Main2Activity
MainActivity页面代码:
Intent intent = new Intent();
intent.setClass(MainActivity.this, Main2Activity.class);
intent.putExtra("data", "把我送到Main2Activity页面");
startActivity(intent);
Main2Activity页面代码:
//Main2Activity页面创建的函数
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent i=getIntent();//因为 Mian2Activity 是通过 intend 来启动的,所以
//通过getIntend 来获取与这个 Activity 相关的数据
TextView textView=(TextView) findViewById(R.id.textView);
textView.setText(i.getStringExtra("data"));//因为 MainActivity里通过//putExtra传递时名字是 data
}
跳转到另一个Activity后,再跳回到原来的页面
- MainActivity页面–>Main2Activity
- 点击Main2Activity的按钮,跳回MainActivity
MainActivity页面代码:
//Button点击事件
//点击后,跳转到Main2Activity
public void skip_InputInfo(View view) {
Intent intent = new Intent();
intent.setClass(MainActivity.this,Main2Activity.class);
startActivityForResult(intent, 0);
}
Main2Activity页面代码:
//Button点击事件
//点击后,跳回MainActivity
public void skip_main(View view) {
//创建一个Intent
Intent intent = new Intent();
intent.setClass(Main2Activity.this,MainActivity.class);
intent.putExtra("userinfo",
userInfoToString(getUserInfo())
);
//设置结果
setResult(1,intent);
//调回MainActivity
finish();
}
MainActivity页面代码:
//跳回,监听事件
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
System.out.println("DEBUG::" + requestCode +" " + resultCode +" " + data);
// RESULT_OK,判断另外一个activity已经结束数据输入功能,Standard activity result:
// operation succeeded. 默认值是-1
String info = data.getStringExtra("userinfo");
System.out.print(info);
//设置结果显示框的显示数值
TextView textView = (TextView)findViewById(R.id.textView_info);
textView.setText(info);
}