Android TabWidget は現在のタブのクリックを検出します 質問する

Android TabWidget は現在のタブのクリックを検出します 質問する

このタブが現在のタブであるときに、タブ上で onclick イベントを発生させる方法を見つけようとしています。

私は(他のいくつかの方法の中でも)この方法を試しましたが、成功しませんでした。

public void onTabChanged(String tabId) {
    Log.d(this.getClass().getName(), ">>>>>>>>>>>>>>>>>>>>>>>> tabId: " + tabId);

    int tabs = getTabWidget().getChildCount();
    Log.d(this.getClass().getName(), "tabs: " + tabs);
    for(int i=0; i<tabs; i++){
        View tab = getTabWidget().getChildAt(i);
        if(i==tabHost.getCurrentTab()){
            Log.d(this.getClass().getName(), "tab: " + i);
            tab.setOnClickListener(this);
        }else{
            tab.setOnClickListener(null);
            tab.getOnFocusChangeListener();
        }
    }   
}

ポイントは、を設定したのでonClickListenernull次にタブをクリックしても何も起こらないのですが、普通タブの動作。

外には何かアイデアがありますか?

ベストアンサー1

タブ リスナーの多くのソリューションを検討した後、非常にシンプルなソリューションを見つけました...

getTabHost().setOnTabChangedListener(new OnTabChangeListener() {

@Override
public void onTabChanged(String tabId) {

int i = getTabHost().getCurrentTab();
 Log.i("@@@@@@@@ ANN CLICK TAB NUMBER", "------" + i);

    if (i == 0) {
            Log.i("@@@@@@@@@@ Inside onClick tab 0", "onClick tab");

    }
    else if (i ==1) {
            Log.i("@@@@@@@@@@ Inside onClick tab 1", "onClick tab");
    }

  }
});

おすすめ記事