回传值

原创 2016年05月31日 21:57:24
回传值
    关键字
    requestCode(请求码)
    resultCode(回执码)
    data(数据 )其实就是intent 作为联系四大组件的枢纽,有它才能有数据
    
    发送端
    实现回传值得第一步
       startActivityForResult(intent,requestCode);//TODO 改换成startActivityForResult(intent,请求码)
    重写onActivityResult(int1,int2,intent)方法
    int1 是requestCode(请求码)
    int2 是resultCode(回执码)
    intent 是data(数据 )
    
      //TODO 重写onActivityResult(请求码,回执码,intent) 当有多个请求时,请求码是用来不同的请求,
    public void onActivityResult(int requestCode,int resultCode,Intent intent){
    
        super.onActivityResult(requestCode,resultCode,intent);
        
        switch(resultCode){//TODO 返回值 resultCode 用来决定使用case xxx
            case 111:
                String msg = intent.getStringExtra("MESSAGE");//TODO MESSAGE是回调的信息
                mEditText.setText("requestCode:"+requestCode+"resultCode"+resultCode);
                mEditText.append(msg);//TODO append添加多余信息
                break;
            case 222:
                String msg2 = intent.getStringExtra("MESSAGE2");//TODO MESSAGE是回调的信息
                mEditText.setText("requestCode:"+requestCode+"resultCode"+resultCode);
                mEditText.append(msg2);//TODO append添加多余信息
                break;
        }
    
    接受端
    设定返回值
      showaddress= (EditText)findViewById(R.id.intent_show_address);
      String str = showaddress.getText().toString()
    设定返回码
     resultCode = 111
     加载信息
     intent.putExta("msg",str);
     设定结果
      setResult(resultCode,intent);
      
       public void onClick(View view) {
        int id = view.getId();
        Intent intent = getIntent();
        String str = showaddress.getText().toString()+showbirth.getText().toString()+showsex.getText().toString();
        String str2 = showaddress.getText().toString()+showbirth.getText().toString();

        switch (id){
            case R.id.parameter_second_btn:
                resultCode = 111;//TODO 回执码,在返回时做判断
                intent.putExtra("MESSAGE",str);
                setResult(resultCode,intent);
                finish();
                break;
            case R.id.parameter_second_btn2:
                resultCode = 222;//TODO 回执码吧 成成
                intent.putExtra("MESSAGE2",str2);
                setResult(resultCode,intent);
                finish();
                break;
        }
在传递对象的时候
    对象应该实现接口Serializable或者接口Parcelable
    实现Serializable接口
    public class Student implements Serializable {
    String name;
    String birth;
    String sex;

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBirth() {
        return birth;
    }

    public void setBirth(String birth) {
        this.birth = birth;
    }

        实现接口Parcelable
    public class Teacher implements Parcelable {

    String name;
    String birth;
     String sex;
     Teacher(String name,String birth,String sex){
        this.name = name;
        this.birth = birth;
        this.sex = sex;
    }

    protected Teacher(Parcel in) {
        name = in.readString();
        birth = in.readString();
        sex = in.readString();
    }

    public static final Creator<Teacher> CREATOR = new Creator<Teacher>() {
        @Override
        public Teacher createFromParcel(Parcel in) {
            return new Teacher(in);
        }

        @Override
        public Teacher[] newArray(int size) {
            return new Teacher[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(name);
        parcel.writeString(birth);
        parcel.writeString(sex);
    }
}    
    实现接口Parcelable看着挺多的其实,android studio 很强大,只要把开头public class Teacher implements Parcelable
    写出来,其他的android studio 都可以自动生成
    
   

相关文章推荐

接收弹出页面的回传值

  • 2008年04月16日 08:49
  • 3KB
  • 下载

Activity回传值

  • 2013年11月20日 19:10
  • 1.38MB
  • 下载

ionic2页面回传值,关于Typescript的Promise承诺

经典:javascript Promise介绍 来自谷歌的说明,简单直观 来自谷歌 Promise 构造函数接受一个函数作为参数,该函数的两个参数分别是 resolve 方法和 rejec...

Jquery thickbox回传值实例

  • 2009年04月13日 12:16
  • 23KB
  • 下载

React Native 页面之间传值、回传数据

很多同行最近都在苦思冥想一个问题:RN从A页面传值到B页面简单,但是我怎么从B页面传值到A页面呢,头大了! 下面我写了一个简单的示例,请各位同行参考下: 首先分三个页面:index.android...

React Native 页面之间传值、回传数据

很多同行最近都在苦思冥想一个问题:RN从A页面传值到B页面简单,但是我怎么从B页面传值到A页面呢,头大了! http://blog.csdn.net/liu__520/article/detai...

showModalDialog 传值及刷新。弹出子页面,回传给父页面

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">HTML>    HEAD>        TITLE>New Document...
  • wybshyy
  • wybshyy
  • 2016年07月29日 14:05
  • 1077

二维码的应用,扫描二维码和生成二维码,使用回传值,导入依赖

在module的build.gradle中执行compile操作 compile 'cn.yipianfengye.android:zxing-library:2.2' 在demo Appl...
  • thw_m
  • thw_m
  • 2017年11月03日 19:47
  • 45

弹出框往回传值

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml" xml:lang="z...
  • Omarix
  • Omarix
  • 2011年08月18日 13:45
  • 389

activity之间回传值

从MainActivity打开AActivity, 在MainActivity中接收从AActivity回传 的数据"aa","bb" 一.在 MainActivity 中用startActiv...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:回传值
举报原因:
原因补充:

(最多只允许输入30个字)