如何从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 回答
![?](http://img1.sycdn.imooc.com/545868b60001587202200220-100-100.jpg)
森林海
TA贡献2011条经验 获得超2个赞
finish()
mParent
null
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 关注
- 483 浏览
添加回答
举报
0/150
提交
取消