无法解析符号“setOnTouchListener”

Red*_*ner 1 android ontouchlistener android-activity

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);
}
Run Code Online (Sandbox Code Playgroud)

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

  • 无法解析符号“setOnTouchListener” - 用于 setOnTouchListener
  • 无效的方法声明;需要返回类型 - 用于 onTouchListener
  • 此处不允许注释 - 对于公共布尔值之上的@override
  • 无法为两个“事件”解析符号“事件”
  • 无法从具有 void 结果类型的方法返回值以返回 true 并返回 false

请帮忙!

tac*_*lux 6

您不能在类主体中运行原始赋值以外的代码。您的代码需要采用某种方法,例如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;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)