我是android编程的新手,我的应用程序中的选项卡使用OnClickListener时遇到问题。我在堆栈上找到了应如何解决的解决方案,但由于某种原因,它无法正常工作。

I'm trying to use the 2nd answer

由于某种原因,我遇到了2个错误。

第一个是我的活动的名称:DragonLords类型必须实现继承的抽象方法View.OnClickListener.onClick(View)。

第二个是关于OnClick方法的:new View.OnClickListener(){}类型的onClick(View)方法必须覆盖超类方法。

这是我的代码的一部分:

public class DragonLords extends TabActivity implements OnClickListener{
/** Called when the activity is first created. */
@Override
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
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, Home.class);

    // Initialize a TabSpec for each tab and add it to the TabHost
    spec = tabHost.newTabSpec("home").setIndicator("home",
                      res.getDrawable(R.drawable.hometab))
                  .setContent(intent);
    tabHost.addTab(spec);
    getTabWidget().getChildAt(0).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (getTabHost().getCurrentTab()==0) {
                getTabHost().setCurrentTab(0);
            }else
            {
                getTabHost().setCurrentTab(0);
            }
        }

    });


之后,我将创建更多选项卡。在没有onclicklistener的情况下,我需要能够在选项卡处于活动状态时重新加载它们。

有人知道我在做什么错吗?

我添加了必要的进口。

加兹

最佳答案

您必须不像在代码中那样在匿名内部类中实现onClick方法。
尝试使用new TabWidget.OnClickListener代替普通的OnClickListener


类似于以下内容:

public class TestActivity extends TabActivity implements OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    getTabWidget().getChildAt(0).setOnClickListener(new TabWidget.OnClickListener() {

        public void onClick(View v) {
            if (getTabHost().getCurrentTab()==0) {
                getTabHost().setCurrentTab(0);
            }else
            {
                getTabHost().setCurrentTab(0);
            }
        }

    });
}

public void onClick(View theView) {
    // Do something with view here

}
}

关于android - Android中选项卡的OnClickListener问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6432090/

10-12 15:36