将监听器添加到我的选项卡

时间:2015-01-20 19:02:50

标签: java android android-tabs

如何向我的标签添加监听器。所以我想做的是,当我点击我的标签时,我想做点什么。 这是选项卡的代码:

package app.my.com.wave;

 import android.support.v7.app.ActionBarActivity;
 import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;


public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


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

    TabHost.TabSpec spec1 = tabHost.newTabSpec("Tab 1");
    spec1.setContent(R.id.tab1);
    spec1.setIndicator("Tab 1");

    TabHost.TabSpec spec2 = tabHost.newTabSpec("Tab 2");
    spec2.setIndicator("Tab 2");
    spec2.setContent(R.id.tab2);

    TabHost.TabSpec spec3 = tabHost.newTabSpec("Tab 3");
    spec3.setIndicator("Tab 3");
    spec3.setContent(R.id.tab3);

    tabHost.addTab(spec1);
    tabHost.addTab(spec2);
    tabHost.addTab(spec3);
}}

这是我的XML文件夹:

<?xml version="1.0" encoding="utf-8"?>
<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tabHost"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<TabWidget
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@android:id/tabs"
    />
<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@android:id/tabcontent"
    >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tab1"
        android:orientation="vertical"
        android:paddingTop="60px"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="100px"
            android:text="This is tab1"
            android:id="@+id/txt1"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tab2"
        android:orientation="vertical"
        android:paddingTop="60px"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="100px"
            android:text="This is tab 2"
            android:id="@+id/txt2"
            />

    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/tab3"
        android:orientation="vertical"
        android:paddingTop="60px"
        >
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="100px"
            android:text="This is tab 3"
            android:id="@+id/txt3"
            />

    </LinearLayout>
</FrameLayout>

总而言之,我想在按下这些标签时做点什么。请帮助我,并提前致谢。

2 个答案:

答案 0 :(得分:1)

使用setOnTabChangeListener

 tabHost.setOnTabChangedListener(new OnTabChangeListener() {
   @Override
  public void onTabChanged(String arg0) {
   Log.e("Tab number ", "" + tabHost.getCurrentTab());
  }     

答案 1 :(得分:0)

当此选项卡列表中任何项目的选定状态发生更改时,您可以注册要调用的回调。

 mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
   @Override
  public void onTabChanged(String arg0) {
   Log.d("MainActivity", "current tab index :: " + mTabHost.getCurrentTab());
  }     

设置tabhost android f / w时添加了在单击tabwidget的特定视图时调用的回调。在使用已更改选项卡索引的setCurrenttab方法之后,它将依次调用onTabChange调用。