欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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()设置的