首先两个布局文件,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")); } }
完成!!