Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中选项卡的OnClickListener存在问题_Android_Tabs_Onclick_Listener - Fatal编程技术网

android中选项卡的OnClickListener存在问题

android中选项卡的OnClickListener存在问题,android,tabs,onclick,listener,Android,Tabs,Onclick,Listener,我是android编程新手,我的应用程序中的OnClickListener选项卡有问题。我在堆栈上找到了一个解决方案,它应该如何完成,但由于某些原因,它不起作用 由于某种原因,我得到了两个错误 第一个是我的活动的名称:类型DragonLords必须实现继承的抽象方法View.OnClickListener.onClick(View)。 第二个是OnClick方法:类型为new View的OnClick(View)方法。OnClickListener(){}必须重写超类方法。 以下是我代码的一部

我是android编程新手,我的应用程序中的OnClickListener选项卡有问题。我在堆栈上找到了一个解决方案,它应该如何完成,但由于某些原因,它不起作用

由于某种原因,我得到了两个错误

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

第二个是OnClick方法:类型为new View的OnClick(View)方法。OnClickListener(){}必须重写超类方法。

以下是我代码的一部分:

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
    
    }
    }
    
  • 必须在匿名内部类中实现
    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
    
    }
    }
    

    你做这件事很难。。我是这样做的

    创建时的公共void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(窗口。功能\u无\u标题); setContentView(R.layout.tablayout)

    希望这有帮助。。。。 tabs_bg只是一个带有

    
    

    你做得很辛苦……我就是这样做的

    创建时的公共void(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(窗口。功能\u无\u标题); setContentView(R.layout.tablayout)

    希望这有帮助。。。。 tabs_bg只是一个带有

    
    

    此外,TabWidget click listener中的逻辑并没有真正向我注册。我理解这些语句的方式是:
    如果currentTab为0,则将该选项卡设置为0;否则将该选项卡设置为0
    ;正确吗?正确。我希望能够重新加载当前处于活动状态的选项卡。当我对on click进行覆盖时方法,我猜在另一个选项卡处于活动状态时单击该选项卡将不起作用,除非我将其置于覆盖中。因此,我们单击该选项卡。我们检查哪个选项卡处于活动状态。如果是此选项卡,则重新加载它,如果不是,则打开它。如果您所说的是正确的,则不希望刷新该选项卡。您可以通过des刷新该选项卡troying它里面的东西并重新创建它。因此,如果它重新启动一个活动,只需调用它的
    finish()
    方法,然后将一个新的意图传递给该选项卡即可。你是对的,我的错误。它不会像我想象的那样工作。谢谢你的想法。但我仍然无法让它工作,并且出现了一系列其他问题:(听起来像是你想要的。现在你可以使用
    getTabHost()
    选项卡Activity
    中。此外,TabWidget click listener中的逻辑并没有真正向我注册。我理解这些语句的方式是:
    如果当前选项卡为0,则将选项卡设置为0;否则将选项卡设置为0
    ;正确吗?正确。我希望能够重新加载当前处于活动状态的选项卡。何时我在单击方法上做了一个覆盖,我猜在另一个选项卡处于活动状态时单击该选项卡将不起作用,除非我将其放入覆盖中。因此,我们单击该选项卡。我们检查哪个选项卡处于活动状态。如果是此选项卡,我们将重新加载它,如果不是,我们将其打开。如果您所说的是正确的,则不希望刷新该选项卡e tab。您可以通过销毁并重新创建选项卡来刷新该选项卡。因此,如果它正在启动一个活动,只需调用它的
    finish()
    方法,然后向该选项卡传递一个新的工作意图。你是对的,我的错误。它不会像我想象的那样工作。谢谢你的想法。但我仍然无法让它工作,并且出现了一系列其他问题:(听起来像是你想要的。现在你可以使用
    getTabHost()
    TabActivity
    中。当我尝试使用new-TabWidget.OnClickListener时,出现了第三个错误:/type视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(new-OnClickListener(){})当我尝试使用new-TabWidget.OnClickListener时,出现了第三个错误:/type视图中的方法setOnClickListener(View.OnClickListener)不适用于参数(new-OnClickListener(){})
    <TextView android:id="@+id/tabsText" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Title"
        android:textSize="15dip" 
        android:textColor="@drawable/tab_text_selector" />