2015-01-20 4 views
0

Как добавить слушателей к моим вкладкам. Так что я хочу сделать, когда я нажимаю на свою вкладку, я хочу что-то сделать. Вот код для вкладок:Добавление слушателей на мои вкладки

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> 

Итак, в заключение я хочу сделать что-то, когда эти вкладки pressed.Please помочь мне и спасибо заранее.

ответ

1

использование setOnTabChangeListener

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

Вы можете зарегистрировать функцию обратного вызова, которая будет вызвана, когда выбранное состояние любого из пунктов в этом списке изменений на вкладке.

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

При настройке tabhost андроида F/W добавляет функцию обратного вызова, которая вызывается при нажатии на конкретном зрении TabWidget. После метода setCurrenttab с измененным индексом вкладки он, в свою очередь, вызовет вызов onTabChange.

Смежные вопросы