Android有关Activity的传值,回传
程序员文章站
2022-03-26 16:04:14
...
传值主要是通过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()设置的
推荐阅读
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】
-
Android Activity的跳转与传值详解
-
Android 中两个Activity 之间的传值问题
-
android中Intent传值与Bundle传值的区别详解
-
Android编程使用WebView实现与Javascript交互的方法【相互调用参数、传值】
-
Android Activity的跳转与传值详解
-
Android 中两个Activity 之间的传值问题
-
Android学习笔记--Activity中使用Intent传值示例代码
-
Android学习笔记--使用剪切板在Activity中传值示例代码