活动1向活动2传递数据:
在活动1的按钮下写
intent.putExtra(“data”,data);
这里面是键值的形式,前面的data是键,后面的data是一个值。
可以String data=“哈哈哈哈”;
在活动二中接收数据:
String data=intent.getStringExtra("data");
这里的data是活动一中传入的键,它与data中存储的数据对应。
活动二怎么向活动一传值呢?
首先 不一样的地方是活动一开始活动的地方不是startActivity而是startActivityForResult()两个参数,第一个为intent ,第二个是请求码,先给一个实战的代码。
这是活动1中的代码
Button buttondata=(Button)findViewById(R.id.buttondata);
buttondata.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
}
});
这是活动二得
Button button8=(Button)findViewById(R.id.button8);
button8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String str="数据返回成功";
Intent intent1=new Intent();
intent1.putExtra("datas",str);
setResult(RESULT_OK,intent1);
finish();
}
});
当活动二结束后活动一如何接收活动二给得数据呢?
这时需要我们重写一个叫onActivityResult的函数。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 1:
if(data!=null){
String datas=data.getStringExtra("datas");
Button button=findViewById(R.id.buttondata);
// button.setTextColor(0xfff);
button.setText(datas);
}
}
}
这里面的requestCode是请求码只要是个唯一值就可以了。