Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动态选择用户单击选项卡时要启动的选项卡活动_Android_Android Activity_Android Tabhost_Activitygroup - Fatal编程技术网

Android 动态选择用户单击选项卡时要启动的选项卡活动

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

我看过很多关于在选项卡中使用嵌套活动时使用ActivityGroup的帖子。在我的例子中,我不希望从活动中启动活动,而是希望根据标记值动态决定用户每次单击选项卡时启动哪个活动

我正在尝试这样的事情:

选项卡活动类:

 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

在选择活动之前。希望这对别人有帮助