任何人都可以在 Android 中提供 TabHost 的示例代码吗?

Posted

技术标签:

【中文标题】任何人都可以在 Android 中提供 TabHost 的示例代码吗?【英文标题】:can anyone give sample code for TabHost in Android? 【发布时间】:2010-10-31 13:17:58 【问题描述】:

我需要示例代码来在 android 中创建 TabHost。 谁能帮帮我。

【问题讨论】:

this question 的答案列出了示例代码的所有问题,以及人们找到的解决方法。 本教程可能对您有所帮助learnncode.wordpress.com/2013/12/18/… 【参考方案1】:

Android 开发者网站有一个出色的完整代码示例,用于使用 TabWidgetTabHost 在 Android 中创建选项卡。

查看Hello, TabWidget。

【讨论】:

是什么让我对他们的例子发疯?他们不包含所有必要的信息。取行'mTabHost = getTabHost();'例如 - 没有事先提及或描述“mTabHost”。而且,他们的另一个选项卡示例有阻止它编译的错字。而且,当它被编译时,它会“核心转储”。【参考方案2】:

我已经完成了关于显示分数的 tabhost 相关代码

    TabHost host = getTabHost();
    host.setup ();

    TabSpec allScoresTab = host.newTabSpec("allTab");
    allScoresTab.setIndicator(getResources().getString(R.string.all_scores), getResources().getDrawable(android.R.drawable.star_on));
    allScoresTab.setContent(R.id.ScrollViewAllScores);
    host.addTab(allScoresTab);

    TabSpec friendScoresTab = host.newTabSpec("friendsTab");
    friendScoresTab.setIndicator(getResources().getString(R.string.friends_scores), getResources().getDrawable(android.R.drawable.star_on));
    friendScoresTab.setContent(R.id.ScrollViewFriendScores);
    host.addTab(friendScoresTab);

    host.setCurrentTabByTag("allTab");

我的 xml 包含:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_
    android:background="@drawable/bkgrnd">
    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_
        android:layout_>
        <ImageView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ImageView_Header"
            android:layout_
            android:layout_
            android:src="@drawable/quizicon"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true">
        </ImageView>
        <TextView
            android:id="@+id/TextView01"
            android:layout_
            android:text="@string/scores"
            android:textSize="@dimen/screen_title_size"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="10"
            android:layout_
            android:layout_gravity="fill_horizontal|center"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:shadowColor="@android:color/white"
            android:textColor="@color/title_color">
        </TextView>
        <ImageView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/ImageView_Header2"
            android:layout_
            android:src="@drawable/quizicon"
            android:layout_gravity="right|center_vertical"
            android:layout_
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true">
        </ImageView>
    </RelativeLayout>
   <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_
    android:layout_>
    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_>
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_
            android:layout_ />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_
            android:layout_>
            <ScrollView android:id="@+id/ScrollViewAllScores" android:layout_ android:layout_ android:scrollbars="vertical">
  <TableLayout android:id="@+id/TableLayout_AllScores" android:layout_ android:layout_ android:stretchColumns="*" /> 
  </ScrollView>
- <ScrollView android:id="@+id/ScrollViewFriendScores" android:layout_ android:layout_ android:scrollbars="vertical">
  <TableLayout android:id="@+id/TableLayout_FriendScores" android:layout_ android:layout_ android:stretchColumns="*" /> 
  </ScrollView>
        </FrameLayout>
    </LinearLayout>
</TabHost>
</LinearLayout>

【讨论】:

【参考方案3】:

activity_main.xml 包含

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_
    android:layout_ >

    <RelativeLayout
        android:layout_
        android:layout_ >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_
            android:layout_
            android:layout_above="@+id/scroll" />

        <HorizontalScrollView
            android:id="@+id/scroll"
            android:layout_
            android:layout_
            android:scrollbars="none"
            android:layout_alignParentBottom="true" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_
                android:layout_
                android:background="@drawable/tabs_bg" />
        </HorizontalScrollView>
    </RelativeLayout>

</TabHost>

而java代码是

TabHost tabHost = getTabHost();

        TabSpec spec;

        Intent intent;

        //Home Tab
        View view1 = LayoutInflater.from(MainActivity.this).inflate(R.layout.home, null);

        intent = new Intent(MainActivity.this, Firstclass.class);

        spec = tabHost.newTabSpec("HOME").setIndicator(view1)
                .setContent(intent);

        tabHost.addTab(spec);

        //Calendar Tab
        View view2 = LayoutInflater.from(MainActivity.this).inflate(R.layout.calendar_tab, null);

        intent = new Intent(MainActivity.this, Calendar.class);

        spec = tabHost.newTabSpec("CALENDAR").setIndicator(view2)
                .setContent(intent);

        tabHost.addTab(spec);

【讨论】:

【参考方案4】:

res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".MainActivity">

<TabHost
    android:id="@+id/tabHost"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_
            android:layout_></TabWidget>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_
            android:layout_>

            <LinearLayout
                android:id="@+id/tab1"
                android:layout_
                android:layout_
                android:background="#ffc916"
                android:orientation="vertical">

                <TextView
                    android:layout_
                    android:layout_
                    android:text="This is tab 1" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/tab2"
                android:layout_
                android:layout_
                android:background="#da8200"
                android:orientation="vertical">

                <TextView
                    android:layout_
                    android:layout_
                    android:text="This is tab 2" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/tab3"
                android:layout_
                android:layout_
                android:background="#5b89ff"
                android:orientation="vertical">

                <TextView
                    android:layout_
                    android:layout_
                    android:text="This is tab 3" />
            </LinearLayout>
        </FrameLayout>
    </LinearLayout>
</TabHost>

src/MainActivity.java

  public class MainActivity extends AppCompatActivity 
TabHost tabHost;
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TabHost host = (TabHost)findViewById(R.id.tabHost);
    host.setup();

    //Tab 1
    TabHost.TabSpec spec = host.newTabSpec("Tab One");
    spec.setContent(R.id.tab1);
    spec.setIndicator("Tab One");
    host.addTab(spec);

    //Tab 2
    spec = host.newTabSpec("Tab Two");
    spec.setContent(R.id.tab2);
    spec.setIndicator("Tab Two");
    host.addTab(spec);

    //Tab 3
    spec = host.newTabSpec("Tab Three");
    spec.setContent(R.id.tab3);
    spec.setIndicator("Tab Three");
    host.addTab(spec);


@Override
public boolean onCreateOptionsMenu(Menu menu) 
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;


@Override
public boolean onOptionsItemSelected(MenuItem item) 
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) 
        return true;
    

    return super.onOptionsItemSelected(item);

 

您可以按照这些教程寻求帮​​助

Creating a tabbed UI with TabHost

Android Tab Layout Tutorial

【讨论】:

以上是关于任何人都可以在 Android 中提供 TabHost 的示例代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android中动态添加tab

如何在tabhost中居中文本?

如何在android中使用sqllite

在 Android 上听不到录音

如何在android中使用网络服务?

Android Binder机制完全解析