如何在android应用程序的每个页面上添加tabhost控件?

如何在android应用程序的每个页面上添加tabhost控件?,android,Android,我想在android应用程序的每个页面上显示和处理tabhost控件的事件,而不必一次又一次地创建它,因为在asp.net中,我们有母版页概念,我们可以在母版页上放置我们的常用控件,android中是否有任何内容,因此,我可以将tabcontrol放在那里。您应该使用TabActivity扩展活动,并使用TabHost和TabSpec xml的一个例子是 <?xml version="1.0" encoding="utf-8"?> <TabHost android:la

我想在android应用程序的每个页面上显示和处理tabhost控件的事件,而不必一次又一次地创建它,因为在asp.net中,我们有母版页概念,我们可以在母版页上放置我们的常用控件,android中是否有任何内容,因此,我可以将tabcontrol放在那里。

您应该使用TabActivity扩展活动,并使用TabHost和TabSpec xml的一个例子是

  <?xml version="1.0" encoding="utf-8"?>
  <TabHost android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost">
   <LinearLayout android:id="@+id/LinearLayout01"
        android:orientation="vertical"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
 <TabWidget     android:id="@android:id/tabs"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent">
        </TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent">
        </FrameLayout>
</LinearLayout>

  </TabHost>

您应该使用TabActivity扩展活动,并使用TabHost和TabSpec xml的一个例子是

  <?xml version="1.0" encoding="utf-8"?>
  <TabHost android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost">
   <LinearLayout android:id="@+id/LinearLayout01"
        android:orientation="vertical"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
 <TabWidget     android:id="@android:id/tabs"
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent">
        </TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent">
        </FrameLayout>
</LinearLayout>

  </TabHost>


我知道我们可以扩展tabactivity,我已经创建了tabhost,但我不想为每个页面一次又一次地创建tab,如果我在应用程序的每个页面上扩展tabactivity,这意味着我为每个页面创建新的tab控件,但是,我只想创建一次,并在每个页面上使用它作为asp.netWell中的母版页概念。您不必为每个活动扩展tabactivity,而是创建一个从tabactivity扩展而来的活动。然后,当您使用TabHost时,请记住它保留了所有选项卡。然后是TabSpec,它基本上使您能够设置每个选项卡的内容。在setIndicator()和setContent()的帮助下,每个选项卡的名称和内容。完成所有这些之后,您必须将这些tabSpec添加到tabHost.tabSpec firstTabSpec=tabHost.newTabSpec(“tabIndicator1”);firstTabSpec.setIndicator(“First Tab”).setContent(新的意图(这个,FirstTab.class));如您所见,您只需在此处调用另一个活动假设我单击第一个选项卡,它将打开一个包含按钮的页面&当我单击该按钮时,登录页面将打开&现在我希望登录页面上的tabcontrol不重新创建它。因此,您希望您的第一个选项卡屏幕和登录页面都位于同一选项卡下?我没有尝试过这一点,但我认为这会解决你的问题我知道我们可以扩展tabactivity,我已经创建了tabhost,但我不想为每个页面一次又一次地创建tab,如果我在应用程序的每个页面上扩展tabactivity,这意味着我为每个页面创建新的tab控件,但是,我只想创建一次,并在每个页面上使用它作为asp.netWell中的母版页概念。您不必为每个活动扩展tabactivity,而是创建一个从tabactivity扩展而来的活动。然后,当您使用TabHost时,请记住它保留了所有选项卡。然后是TabSpec,它基本上使您能够设置每个选项卡的内容。在setIndicator()和setContent()的帮助下,每个选项卡的名称和内容。完成所有这些之后,您必须将这些tabSpec添加到tabHost.tabSpec firstTabSpec=tabHost.newTabSpec(“tabIndicator1”);firstTabSpec.setIndicator(“First Tab”).setContent(新的意图(这个,FirstTab.class));如您所见,您只需在此处调用另一个活动假设我单击第一个选项卡,它将打开一个包含按钮的页面&当我单击该按钮时,登录页面将打开&现在我希望登录页面上的tabcontrol不重新创建它。因此,您希望您的第一个选项卡屏幕和登录页面都位于同一选项卡下?我没有尝试过这一点,但我认为这会解决你的问题