4.用Intent传输数据

来源:互联网 发布:openwrt网络共享设置 编辑:程序博客网 时间:2024/05/29 09:05

1.A活动向B活动传递数据,并要求B活动返回数据

A活动:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button sendDate=(Button)findViewById(R.id.sendDate);        sendDate.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent =new Intent(MainActivity.this,SecondActivity.class);                //向SecondActivity传递数据,将数据存在Intent中,key为main,值为Hi!!!                //什么是key?取值所需的钥匙,在SecondActivity会用到                intent.putExtra("main","Hi!!!");                //该方法在启动Activity的同时,要求被启动的Activity返回数据                //可能有不同Intent来传输不同的数据,就是第二个参数,是一个请求码,等下会用到                startActivityForResult(intent,1);            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode){            case 1://这里的1,就是请求码,有了请求码就可以分出不同的数据                if(resultCode==RESULT_OK){//这个resultCode是用来判断有没有成功返回数据                    //取值就是这样的方法,取字符串,用这个,那其他的就举一反三                    Log.d("mmmmmmmm",data.getStringExtra("second"));                }                break;        }    }}
B活动
public class SecondActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        //取出上一个Activity传来的值        Log.d("sssssssss",getIntent().getStringExtra("main"));        Button returnDare=(Button)findViewById(R.id.returnDate);        returnDare.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent=new Intent(SecondActivity.this,MainActivity.class);                intent.putExtra("second","Hello!!!");                //这里就是设置该intent返回数据的结果                setResult(RESULT_OK,intent);                //这样启动MainActivity是一个新的MainActivity,你在这个新的Acitvity是获取不到数据的                //因为这个新的MainActivity没有要求返回数据,为什么会有新的MainActivity                //在Activity的启动方式中,我会讲                //startActivity(intent);                finish();            }        });    }}
0 0
原创粉丝点击