Rediner
Rediner

Reputation: 83

cannot resolve symbol 'setOnTouchListener'

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);
}

How to fix this code? I have that errors:

  • cannot resolve symbol 'setOnTouchListener' - for setOnTouchListener
  • invalid method declaration; return type required - for onTouchListener
  • Annotations are not allowed here - for @override above public boolean
  • cannot resolve symbol 'event' for bothe 'events'
  • cannot return a value from a method with void result type for return true and return false

Please help!

Upvotes: 1

Views: 3695

Answers (3)

jalu
jalu

Reputation: 1

Use the following method

 @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);

}

Upvotes: 0

tachyonflux
tachyonflux

Reputation: 20211

You can't run code other than primitive assignment in the class body. Your code needs to be in some method, like 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;
        }
    });
}

Upvotes: 6

Shaishav
Shaishav

Reputation: 5312

Your method signature is incorrect. Try this code:

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;
        }
    });

Upvotes: 0

Related Questions