传值主要是通过Intent,Intent分为显示跳转和隐式跳转
主要方法如下:
// 当前页面跳转指定页面
Intent intent = new Intent(this, Main_1_Activity.class);
//putExtra()添加参数
intent.putExtra("one", "111");
startActivity(intent);
//在指定页面获取值
Intent intent = getIntent();
String one=intent.getStringExtra("one");
mTe_text.setText(one);
这就是基本进行传值,
接下来是回传,回传是需要将跳转页面的数据传过来,一般资料修改,情况比较多
回传主要用
startActivityForResult()方法并且需要在当前页面重写回传方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); }
startActivity()是直接跳转,而startActivityForResult()是回传个结果,结果可以是基本数据,也可以是引用,但需要实现
Serializable接口
//当前页面
Intent intent = new Intent(this, Main_2_Activity.class);
intent.putExtra("qianming", qianming);
startActivityForResult(intent, 1);
跳转页面
intent = getIntent();
String qianming = intent.getStringExtra("qianming");
mEdQianming.setText(qianming);
String s = mEdQianming.getText().toString();
intent.putExtra("qianming1",s);
setResult(1,intent);
之后在当前页面重写回传方法onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 3 && resultCode == 3){
String qianming1 = data.getStringExtra("qianming1");
mTeQianming.setText(qianming1);
}
注意:requestCode 值和 resultCode 值
requestCode 值是startActivityForResult()设置的
resultCode 值是setResult()设置的