2010-02-11 9 views
26

안드로이드에서 TabHost.OnTabChangeListener를 사용하는 방법?안드로이드에서 TabHost.OnTabChangeListener를 사용하는 방법?

myTabHost.setOnTabChangedListener(new OnTabChangeListener(){ 
@Override 
public void onTabChanged(String tabId) { 
    if(TAB_1_TAG.equals(tabId)) { 
     //destroy earth 
    } 
    if(TAB_2_TAG.equals(tabId)) { 
     //destroy mars 
    } 
}}); 

TAB_1_TAG가 제공 태그 : 그것은 내 기쁨이 될 이유

나에게 몇 가지 예제 코드를 제공 ... :(

감사

답변

75

당신에게 좋은 선생님을 도와 newTabSpec 메서드를 만들 때

+7

덕분에, 나는 지구를 을 파괴 // 에 열심히 LOL'd 및 //은 우선 화성을 – Naskov

+0

@pgsandstrom을 파괴! 거기에 거의 모든 TabHost 메서드를 온라인에 있습니다. 이것은 정말로 나를 구했다. 내 유일한 혼란은 왜 메소드 호출이'setOnTabChangedListener'이지만,'OnTabChangeListener()'로 인스턴스화됩니다. 인스턴스화에는 "d"가 없습니다! 흠.) – Azurespot

7

많은 경우 TabActivity를 청취자로 만드는 것이 좋습니다.

public class MyTabActivity extends TabActivity implements OnTabChangeListener { 

    private TabHost tabHost; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     /* Your onCreate code here */ 

     tabHost.setOnTabChangedListener(this); 
    } 

    /* ... */ 

    @Override 
    public void onTabChanged(String tabId) { 
     /* Your code to handle tab changes */ 
    } 
} 
0

여기에 OnTabSelectedListener, 을 사용할 수 있습니다. , 덕분 milion을 도움을

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
     @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      switch (tab.getText().toString()) { 
       case "yourTabTitle": 
        //todo your code 
        break; 
      } 
     } 
     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 
      switch (tab.getText().toString()) { 
       case "yourTabTitle": 
        //todo your code 
        break; 
      } 
     } 
     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 
      switch (tab.getText().toString()) { 
       case "yourTabTitle": 
        //todo your code 
        break; 
      } 
     } 
    }); 
관련 문제