用于标签的Android onclicklistener

Jam*_*mes 3 tabs android onclicklistener

我现在一直试图解决这个问题的时间比我承认的要长.我正在设置一个onClicklistenerfor my tabs,所以即使用户在该选项卡上并且他们点击它,该选项卡也会重新加载.有人可以指出我的错误,下面是我正在使用的代码从堆栈溢出的例子组成,所以感谢到目前为止!我正在使用getTabHost().setCurrentTab(3)它将其设置为仅在选项卡3上运行,但我如何获取它以便它调用用户单击的特定选项卡?

我一直在使用它作为参考:Tabs上的OnClickListener无法正常工作

public class DamTabs extends TabActivity implements OnClickListener{
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost(); // The activity TabHost


    Intent intent = new Intent(this, Featured.class);
    tabHost.addTab(tabHost.newTabSpec("Tab 1")
            .setIndicator("Featured", res.getDrawable(R.drawable.ic_tab_main))
            .setContent(intent));

    Intent intent2 = new Intent(this, Deals.class);
    tabHost.addTab(tabHost.newTabSpec("Tab 2")
            .setIndicator("Deals", res.getDrawable(R.drawable.ic_tab_setup))
            .setContent(intent2));

    Intent intent3 = new Intent(this, Events.class);
    tabHost.addTab(tabHost.newTabSpec("Tab 3")
            .setIndicator("Events", res.getDrawable(R.drawable.ic_tab_setup))
            .setContent(intent3));

    getTabWidget().getChildAt(3).setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (getTabHost().getCurrentTabTag().equals(sort)) {
                getTabHost().setCurrentTab(3);
            }
        }
    });

} //End of onCreate
Run Code Online (Sandbox Code Playgroud)

amp*_*amp 6

如果我理解你的问题,我认为你应该使用setOnTabChangedListener()方法.像这样的东西:

mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

        public void onTabChanged(String tabId) {
            Log.d(debugTag, "onTabChanged: tab number=" + mTabHost.getCurrentTab());

            switch (mTabHost.getCurrentTab()) {
            case 0:
                //do what you want when tab 0 is selected
                break;
            case 1:
                //do what you want when tab 1 is selected
                break;
            case 2:
                //do what you want when tab 2 is selected
                break;

            default:

                break;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

并删除implements OnClickListener.