如何从Tabhost活动返回结果(StartActivityForResult)?我的例子中有三个类:A类,主要活动。类A调用startActivityForResult:Intent intent = new Intent(this, ClassB.class);startActivityForResult(intent, "STRING");B类,这个类是TabActivity:Intent intent = new Intent(this, ClassC.class);tabHost.addTab...C类,这个类是一个常规活动:Intent intent = this.getIntent();intent.putExtra("SOMETHING", "EXTRAS");this.setResult(RESULT_OK, intent);finish();在A类中调用onActivityResult,但结果代码是RESULT_CANCELED而不是RESULT_OK返回的意图为空。如何从Tabhost中的活动中返回某些内容?我意识到问题是,我的C类实际上运行在B类内部,而B类是返回RESULT_CANCELED回到A班,我只是还不知道周围有什么工作。
3 回答
森林海
TA贡献2011条经验 获得超2个赞
finish()mParentnull
public void finish() {
if (mParent == null) {
int resultCode;
Intent resultData;
synchronized (this) {
resultCode = mResultCode;
resultData = mResultData;
}
if (Config.LOGV) Log.v(TAG, "Finishing self: token=" + mToken);
try {
if (ActivityManagerNative.getDefault()
.finishActivity(mToken, resultCode, resultData)) {
mFinished = true;
}
} catch (RemoteException e) {
// Empty
}
} else {
mParent.finishFromChild(this);
}}Intent data = new Intent();
[...]if (getParent() == null) {
setResult(Activity.RESULT_OK, data);} else {
getParent().setResult(Activity.RESULT_OK, data);}finish();- 3 回答
- 0 关注
- 538 浏览
添加回答
举报
0/150
提交
取消
