无法解析符号' setOnTouchListener'

时间:2016-10-03 16:33:51

标签: android android-activity ontouchlistener

Button button = (Button)findViewById(R.id.button1);

button.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            //Insert desired code here
            return true;
        }
        return false;
    }
});

public void backtogreen(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    startActivity(intent);
}

如何修复此代码? 我有这样的错误:

  
      
  • 无法解析符号' setOnTouchListener' - 对于setOnTouchListener
  •   
  • 无效的方法声明;需要返回类型 - 对于onTouchListener
  •   
  • 此处不允许使用注释 - 对于@override高于公共布尔值
  •   
  • 无法解决符号'事件'对于bothe'事件'
  •   
  • 无法从具有void结果类型的方法返回值,返回true并返回false
  •   

请帮忙!

3 个答案:

答案 0 :(得分:4)

您不能在类主体中运行除原始赋值之外的代码。您的代码需要采用某种方法,例如onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.button1);
    button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN ) {
                //Insert desired code here
                return true;
            }
            return false;
        }
    });
}

答案 1 :(得分:0)

您的方法签名不正确。试试这段代码:

button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN ) {
                //Insert desired code here
                return true;
            }
            return false;
        }
    });

答案 2 :(得分:0)

使用以下方法

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 Button button = (Button) findViewById(R.id.button1);



        OnTouchListener m_onTouchListener = new OnTouchListener() {
       @Override

        public boolean onTouch(View p_v, MotionEvent p_event) {

           if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            //Insert desired code here
            return true;
        }
        return false;
        }
    };

    button.setOnTouchListener(m_onTouchListener);

}