Activity之间传值以及回传值
Activity有一个重要的方法:onActivityResult();
- protected void onActivityResult(int requestCode, int resultCode, Intent data)
- {
- super.onActivityResult(requestCode, resultCode, data);
- }
参数说明:
requestCode: 请求码 resultCode: 结果码 data: 返回数据
- 第一个Activity
- <pre class="java" name="code">@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- button = (Button)this.findViewById(R.id.button1);
- editText1 = (EditText)this.findViewById(R.id.editText1);
- editText2 = (EditText)this.findViewById(R.id.editText2);
- editText3 = (EditText)this.findViewById(R.id.editText3);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(MainActivity.this,NextActivity.class);
- String a = editText1.getText().toString().trim();
- String b = editText2.getText().toString().trim();
- intent.putExtra("message", a+"+"+b+"="+"?");
- startActivityForResult(intent, 1000);//需要回传值的话要使用startActivityForResult函数,其中1000是请求码
- }
- });
- }
- @Override
- protected void onActivityResult(int arg0, int arg1, Intent arg2) {
- // TODO Auto-generated method stub
- super.onActivityResult(arg0, arg1, arg2);
- if(arg0 == 1000 && arg1 == 1001) //这里的1000是上面定义的请求码,1001是返回码
- {
- String result = arg2.getStringExtra("result");
- editText3.setText(result);
- }
- }
第二个Activity
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- String value = editText.getText().toString().trim();
- Intent intent = new Intent();
- intent.putExtra("result", value);
- setResult(1001,intent);//1001是返回码
- finish();//结束生命周期
- }
- });