Android 动态选择用户单击选项卡时要启动的选项卡活动
我看过很多关于在选项卡中使用嵌套活动时使用ActivityGroup的帖子。在我的例子中,我不希望从活动中启动活动,而是希望根据标记值动态决定用户每次单击选项卡时启动哪个活动 我正在尝试这样的事情: 选项卡活动类:Android 动态选择用户单击选项卡时要启动的选项卡活动,android,android-activity,android-tabhost,activitygroup,Android,Android Activity,Android Tabhost,Activitygroup,我看过很多关于在选项卡中使用嵌套活动时使用ActivityGroup的帖子。在我的例子中,我不希望从活动中启动活动,而是希望根据标记值动态决定用户每次单击选项卡时启动哪个活动 我正在尝试这样的事情: 选项卡活动类: tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); intent = new Intent().setClass(this, MyActivityGroup.class); Tab
tabHost = (TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();
intent = new Intent().setClass(this, MyActivityGroup.class);
TabHost.TabSpec spec = tabHost.newTabSpec("someTag");
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_resource, getTabWidget(), false);
TextView title = (TextView) tabIndicator.findViewById(R.id.tab_title);
title.setText(strTag);
ImageView icon = (ImageView) tabIndicator.findViewById(R.id.tab_icon);
icon.setImageResource(R.drawable.tab_icon);
spec.setIndicator(tabIndicator).setContent(intent);
tabHost.addTab(spec);
MyActivityGroup类别:
public class MyActivityGroup extends ActivityGroup
{
public static MyActivityGroup group;
@Override
protected void onCreate(Bundle savedInstanceState)
{
group = this;
SelectActivity();
}
public void SelectActivity()
{
View view = null;
Intent intent = null;
Window w = null;
LocalActivityManager l = getLocalActivityManager();
if( CheckFlag() )
{
intent = new Intent(this, Activity1.class);
w = l.startActivity("Activity 1", intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
view = w.getDecorView();
}
else
{
intent = new Intent(this,Activity2.class);
w = l.startActivity("Activity 2", intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
view = w.getDecorView();
}
setContentView(view);
}
}
我将Activity1、Activity2和MyActivityGroup添加到清单文件中。如果在我的tab类中,当我设置选项卡的意图时,我将MyActivityGroup替换为Activity1或Activity2,那么它们将正常启动。但是使用MyActivityGroup会在调用startActivity时导致MyActivityGroup::SelectActivity崩溃
有什么建议吗原来我不得不打电话 l、 dispatchCreatesavedInstanceState 在选择活动之前。希望这对别人有帮助