虽然这是个很简单的事,但是有时候用的时候经常出点小问题,还是记下来吧!
先上主要代码:
1:MyActivity
@Override
public void onClick(View view) {
Intent intent = new Intent(mActivity,SecondActivity.class);
intent.putExtra("data","呵呵呵");
mActivity.startActivityForResult(intent,REQUEST_CODE); // REQUEST_CODE:可以判断是哪个请求
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode){
case REQUEST_CODE:
if (resultCode == RESULT_OK) {
String result = data.getStringExtra("result");
tv.setText(result);
break;
}
}
}
2:secondActivity:
public void getData(){
Intent intent = getIntent();
data = intent.getStringExtra("data");
tv.setText(data);
}
@Override
public void onClick(View view) {
Intent intent = new Intent(); // 里面不许要参数
intent.putExtra("result","不知道");
mActivity.setResult(RESULT_OK, intent); // RESULT_OK:多种情况时,可以换其他的Result以作为判断
mActivity.finish();
}
注意事项:
1:在调用代码的时候最好是加上activity 或者用getParent(),特别是在内部类的监听事件中
2:setResult后记得finish()掉这个Activity
3:在返回的方法中先根据请求参数REQUEST判断,如果有多个返回参数在判断返回参数RESULT
4:返回显示上一个Activity时,会先走onActivityResult()方法,然后再走onResume()方法