我遇到了一个稍有不同的问题,并认为我会为遇到类似情况的其他人添加此问题。 我有一个基于活动的选项卡式应用程序,其中一个选项卡活动启动了另一个不受tabHost控制的活动。 我需要在此活动finish()上有一个按钮(即,返回到主“ Tab”视图)并同时切换到其他选项卡。
我决定用BroadcastReceiver处理它。 在设置TabHost的类中,我添加了此类:
class ChangeTabReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "ChangeTabReceiver: received");
TabHost tabHost = getTabHost();
tabHost.setCurrentTab(1);
}
}
..然后定义变量:
ChangeTabReceiver changeTabReceiver;
IntentFilter changeTabFilter;
..then然后添加到onCreate()中:
changeTabReceiver = new ChangeTabReceiver();
changeTabFilter = new IntentFilter(myApplication.CHANGE_TAB);
registerReceiver(changeTabReceiver, changeTabFilter);
最后,在新活动中,当您想要关闭该活动并切换选项卡时,请执行以下操作:
Intent intent = new Intent(myApplication.CHANGE_TAB);
this.sendBroadcast(intent);
this.finish();
当然,您可以通过传递选项卡索引来建立切换到各种选项卡的方法-但在我的情况下,此行为仅在一个活动中发生,因此我决定保持简单...