android activity 传参

来源:互联网 发布:java 多线程 pdf 编辑:程序博客网 时间:2024/06/03 14:26

传参

activity传参分为向上传参和向下传参,传参都是通过intent实现

向下传参

由前一个activity传到下一个activity,比如在Activity1中打开Activity2,就是向下传参。传参时在Activity1中放入参数,在Activity2中取出参数

放参数

    Intent intent = new Intent("com.example.intenttest.showparam_action");    intent.putExtra("name1", "value1");    intent.addCategory("com.example.intenttest.showparam_category");    startActivity(intent);

取参数

protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.second_layout);    String value1 = getIntent().getStringExtra("name1");    Log.i(TAG, "接收到的值:"+value1);}

向上传参

由后一个activity传到上一个activity,比如在Activity1中打开Activity2,关闭activity时传递参数到Activity1就是向上传参。
具体操作:Activity1调用startActivityForResult(启动activity就是为了结果)启动Activity2,Activity2调用setResult()返回结果,Activity1在onActivityResult获取结果

Activity1启动activity为了结果

    Intent intent2 = new Intent("com.example.intenttest.showparam_action");    intent2.addCategory("com.example.intenttest.showparam_category");    startActivityForResult(intent2, REQUEST_CODE);

Activity2设置返回结果

    @Override    public void onClick(View v) {        switch(v.getId()){            case R.id.btn4:                Intent intent = new Intent();                intent.putExtra("data_return", "hello mainactivity");                setResult(RESULT_OK, intent);                finish();                break;            }    }

Activity1取得结果

@Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        //super.onActivityResult(requestCode, resultCode, data);        switch(requestCode){            case REQUEST_CODE:                //RESULT_OK                if(resultCode == RESULT_OK){                    String value = data.getStringExtra("data_return");                    Log.i(TAG, "返回值:"+value);                }                break;            default:                break;        }    }
0 0
原创粉丝点击