Android Intent传值与回传

首先两个布局文件,A页面与B页面分别定义了4个button控件,id为btn_all的button控件为A页面的点击,btn_1、2、3分别为A、B页面用来接收传值的,id为btn_bll为B页面用来点击回传,布局代码略去。直接看Java文件(详细):

一:A页面

首先实例化对象,既定义的4个button控件:

private Button btn_all,btn_1,btn_2,btn_3;

初始化,方法名自己定义:

private void initView(){
    btn_all = findViewById(R.id.btn_all);
    btn_1 = findViewById(R.id.btn_1);
    btn_2 = findViewById(R.id.btn_2);
    btn_3 = findViewById(R.id.btn_3);
}

监听事件:

private void clickListener(){
    btn_all.setOnClickListener(this);
}

写响应事件:

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.btn_all:
            Intent intent = new Intent(this,SecondActivity.class);
            intent.putExtra("extra","我是第一个页面传过来的值");
            intent.putExtra("age",21);
            intent.putExtra("IQ",210.0f);
            startActivityForResult(intent,1001);
            break;
    }
}

写A页面用来接收B页面的回传值:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1001 && resultCode == RESULT_OK){       //判断接口是否符合,符合接受传值
        //接受第二个页面的值,然后设置给某个控件
        
    }
}

到此,A页面需要传给B页面的值与条件以及A接受B页面回传的条件已写完,下面进入B页面接受A页面传过来的值:

二:B页面

前面和A页面一样的实例化对象,初始化,以及监听事件就不重复写出了,直接显示接受值:

//接受A页面传过来的值
private void getNum(){
    Intent intent = getIntent();
    String extra = intent.getStringExtra("extra");
    int age = intent.getIntExtra("age",0);
    float IQ = intent.getFloatExtra("IQ",0.0f);
    btn_1.setText(extra);
    btn_2.setText(age+"");
    btn_3.setText(IQ+"");
}

接下来是回传值给A页面,给B页面的点击控件:

public void onClick(View v) {
    switch (v.getId()){
        case R.id.btn_bll:      //点击控件回传值给第一个页面
            Intent intent = new Intent();
            intent.putExtra("cur_time",“Hello”);
            intent.putExtra("bbb",“你好呀”);
            intent.putExtra("aaa","我萝莉音");     //把获取的值传到第一个页面
            setResult(RESULT_OK,intent);
            this.finish();
            break;
    }
}

到此,B页面完成,下面是在A页面接受B页面回传过来的值。

三:回到A页面,接受B页面回传的值:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1001 && resultCode == RESULT_OK){
        //接受第二个页面的值,然后设置给某个控件
        btn_1.setText(data.getStringExtra("cur_time"));
        btn_2.setText(data.getStringExtra("bbb"));
        btn_3.setText(data.getStringExtra("aaa"));
    }
}

完成!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值