我正在开发这个Android应用程序,主视图有三个选项卡。 “通知”选项卡不是选项卡主机的默认选项卡。所以在通知中我只是为用户编写了删除每个通知的代码,删除通知后我希望应用程序执行的操作是重新加载通知。现在因为我想维护标签视图我不能这样做
Intent intent = new Intent(this, Notification.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
因为这会在标签视图中以全屏视图加载通知,但如果我这样做
Intent intent = new Intent(this, TabExercise.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
我转到标签主机的默认标签,而不是通知。所以我想知道是否有办法向Tabexercise发送指向特定标签的意图?
答案 0 :(得分:4)
将意图发送到Tabexercise
以及选项卡的索引,如下所示:
Intent i = new Intent(this, TabExercise.class);
i.putExtra("tab_index","1");
startActivity(i);
onCreate()
Tabexercise
内的通过读取您传递的参数来设置当前标签:
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); //Assuming that you are setting your tabHost like this
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("tab_index");
if(value.equals("1"){
tabHost.setCurrentTab(Integer.valueOf(value));
}
//and so on ...
}
希望这有帮助。
答案 1 :(得分:0)
在您发送给TabExercise
的意图中,您可以发送要加载的tabindex,然后拨打setCurrentTab (int index)。你尝试过这样的事吗?
答案 2 :(得分:0)
尝试在你的开始意图上做这样的事情
intent.putExtra("notificationsTab",true);
然后在您托管标签的活动的onCreate
方法中,检查一下是否属实。
int notificationsTab = 3;
if(getIntent().getBooleanExtra("notificationsTab")) tabHost.setCurrentTab(notificationsTab);
答案 3 :(得分:0)
Intent intHome = new Intent().setClass(this, MainActivity.class);
intHome.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
TabSpec tabhome = tabHost
.newTabSpec("Home")
.setIndicator("Home", ressources.getDrawable(R.drawable.house))
.setContent(intHome);
Intent intfav = new Intent().setClass(this, Favourite.class);
intfav.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
intfav.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
TabSpec tabfav = tabHost
.newTabSpec("Settings")
.setIndicator("FAVOURITE", ressources.getDrawable(R.drawable.star))
.setContent(intfav);
Intent intinfo = new Intent().setClass(this, Information.class);
TabSpec tabinfo = tabHost
.newTabSpec("Settings")
.setIndicator("INFO", ressources.getDrawable(R.drawable.about))
.setContent(intinfo);
tabHost.addTab(tabhome);
tabHost.addTab(tabfav);
tabHost.addTab(tabinfo);
tabHost.setCurrentTab(0);
并且您说要重新加载活动,因此use可以使用onResume()或onPause()方法重新加载活动。
希望它能帮到你