我的类A调用StartActivityForresult:Class A是TabActivity的一个选项卡中的ActivityGroup
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
classb是一个常见的活动,不是在tabactivity中,它是单独的
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
但在a级活动中,结果是不接收任何内容,不执行。如果我将a级从tabactivity中删除,我的应用程序就可以了。我读过
How to setResult() for a TabActivity which contains activity for tabs
How to return a result (startActivityForResult) from a TabHost Activity?
但不能解决我的问题,能不能有人给点建议,代码比较好,谢谢
编辑:
在A级中,我添加:
public class UpdateImageBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("temp","34353");
}
}
/* (non-Javadoc)
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
unregisterReceiver(updateImageBroadcastReceiver);
}
/* (non-Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
updateImageFilter = new IntentFilter("ACTION_CHANGE_TAB");
updateImageBroadcastReceiver = new UpdateImageBroadcastReceiver();
registerReceiver(updateImageBroadcastReceiver, updateImageFilter);
}
乙班:
Intent intent = new Intent("ACTION_CHANGE_TAB");
intent.putExtra("path", f.getAbsolutePath());
sendBroadcast(intent);
// FileListSelectActivity.this.setResult(RESULT_OK, intent);
finish();
但我不能打印:log.i(“temp”,“34353”);
最佳答案
尝试使用广播接收器。您可以重写活动B中的onstop(),广播活动B中的事件并侦听活动A。
关于android - 如何从 Activity 返回结果(startActivityForResult)到TabHost Activity ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7256098/