Intent之间传递数据

来源:互联网 发布:我国动漫产业数据 编辑:程序博客网 时间:2024/05/16 10:43

intent transfer data 传递数据

1.1 to 2

                String data="Hello second";                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);                intent.putExtra("extra_data", data);                startActivity(intent);

second

        Intent intent=getIntent();        String data=intent.getStringExtra("extra_data");        Log.d("SecondAct",data);

2.2 to 1
startActivityForResult()

                Intent intent = new Intent(FirstActivity.this,                        SecondActivity.class);                startActivityForResult(intent, 1);

这个1 是请求码,与之后的case 对应上了。

        Button button_back = (Button) findViewById(R.id.button_5);        button_back.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                Intent intent=new Intent();                intent.putExtra("data_return", "Hello Firstvalue");                setResult(RESULT_OK,intent);                finish();            }        });

使用 startActivityForResult来启动SecondActivity的,所以在SecondActivity被销毁后悔回调到上一个活动的onActivityResult()方法,所以需要在FirstActivity中重写这个方法来得到返回的数据。

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode) {        case 1:            if (resultCode == RESULT_OK) {                String returnedData = data.getStringExtra("data_return");                Log.d("firstActivity", returnedData);            }            break;        default:        }    }

如果是通过返回键

onBackPressed()

@Override
public void onBackPressed(){
Intent intent=new Intent();
intent.putExtra("data_return","hello First");
setResult(RESULT_OK, intent);
finish();
}

0 0
原创粉丝点击