eclipse setOnTouchListener() 给我一个错误

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17793152/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 20:56:14  来源:igfitidea点击:

setOnTouchListener() is giving me an error

androideclipse

提问by Si8

button.setOnTouchListener(new OnTouchListener()
{
  public void onClick(View v)
  {
      Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();
  }
});

Eclipse states the following:

Eclipse 声明如下:

The method setOnTouchListener(View.OnTouchListener) in the type View is not applicable for the arguments (new OnTouchListener(){})

类型View中的setOnTouchListener(View.OnTouchListener)方法不适用于参数(new OnTouchListener(){})

Imports:

进口:

import android.os.Bundle;
import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.view.Menu;
import android.view.View; 
import android.widget.Button; 
import android.widget.Toast;

Any idea how to resolve it?

知道如何解决吗?

回答by Chiral Code

Use this code:

使用此代码:

    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();
        }
    });

回答by AZX

There are two solutions:

有两种解决方案:

  1. Add import android.view.View.OnTouchListener;to the beginning of your class

  2. Replace button.setOnTouchListener(new OnTouchListener()with button.setOnTouchListener(new ViewOnTouchListener()as Chiral Code suggested.

  1. 添加import android.view.View.OnTouchListener;到班级开头

  2. 更换button.setOnTouchListener(new OnTouchListener()button.setOnTouchListener(new ViewOnTouchListener()手性代码建议。

回答by Aleksandr

回答by anthonycr

The code

编码

public void onClick(View v)
  {
      Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();
  }

is not valid for an onTouchListener. That is why you are getting the error, you should be using

对 onTouchListener 无效。这就是为什么你收到错误,你应该使用

@Override
public void onTouch(View v, MotionEvent e)
      {
          Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();
      }

instead if you really want an onTouchListener, although I highly suggest Chiral Code's suggestion of using an onClickListener

相反,如果你真的想要一个 onTouchListener,虽然我强烈建议手性代码建议使用 onClickListener

回答by Srikanth Roopa

and when u use new OnTouchListener() u need to override on onTouch not onClick or change it to
plus.setOnClickListener(new OnClickListener()

当您使用 new OnTouchListener() 时,您需要覆盖 onTouch 而不是 onClick 或将其更改为
plus.setOnClickListener(new OnClickListener()

 @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub

            Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();

            return false;
        }

回答by amruzzzzzzzzzi

you are putting an ontouchlistener with an onclick listener thats your mistake.

您将 ontouchlistener 与 onclick 侦听器放在一起,那是您的错误。

    button.setOnTouchListener(new OnTouchListener(){

        @Override
        public boolean onTouch(View v, MotionEvent event) {

     Toast.makeText(MainActivity.this, "YOUR TEXT", 5000).show();
    return false;
    }
 });

回答by MDubzem

I also had this problem and I had to do 'fix project setup' which I found after clicking the quick fixes option. I then added a .jar file and it was all good.

我也遇到了这个问题,我必须执行“修复项目设置”,这是我在单击快速修复选项后发现的。然后我添加了一个 .jar 文件,一切都很好。