If you want to receive a result from the activity when it finishes,callstartActivityForResult()
. Your activity receives the resultas a separateIntent
object in your activity'sonActivityResult()
callback.
主要是涉及到两个Activity之间的通信
1. MainActivity.java onActivityResult()回调函数, 接收从NextActivity返回的结果值
<span style="font-size:10px;color:#993300;">private OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this, NextActivity.class);
startActivityForResult(intent, 1);
}
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
Bundle bundleData = data.getExtras();
Log.d("MainActivity",
"000000000000 --- " + bundleData.getInt("num"));
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}</span>
2. NextActivity.java setResult()传递结果值
<span style="font-size:10px;color:#993300;">finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent();
Bundle data = new Bundle();
data.putInt("num", 1);
intent.putExtras(data);
NextActivity.this.setResult(RESULT_OK, intent);
NextActivity.this.finish();
}
});</span>