setOnTouchListener()给我一个错误

时间:2013-07-22 16:53:29

标签: android eclipse

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

Eclipse声明如下:

  

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

进口:

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;

知道怎么解决吗?

7 个答案:

答案 0 :(得分:4)

使用此代码:

    button.setOnClickListener(new View.OnClickListener() {

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

答案 1 :(得分:3)

有两种解决方案:

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

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

答案 2 :(得分:1)

检查您的代码:http://developer.android.com/reference/android/view/View.OnTouchListener.html 你应该使用onTouch方法。

答案 3 :(得分:1)

代码

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

对onTouchListener无效。这就是你得到错误的原因,你应该使用

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

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

的Chiral Code建议

答案 4 :(得分:1)

当你使用新的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;
        }

答案 5 :(得分:0)

你正在为ontouchlistener添加一个onclick监听器来解决你的错误。

    button.setOnTouchListener(new OnTouchListener(){

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

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

答案 6 :(得分:0)

我也有这个问题,我必须做'修复项目设置',我在点击快速修复选项后找到了。然后我添加了一个.jar文件,这一切都很好。