setOnClickListener и setOnLongClickListener вызов по одной кнопке проблема


Мне нужна ваша помощь, если кто-то может быть, это будет великая вещь для моего решения. Я не знаю, возможно это или нет, но я хочу попытаться исправить это как-нибудь.. На самом деле я хочу реализовать два метода на одной кнопке click event, его простой щелчок и длинный щелчок, вот мой код ::

homebutton = (ImageButton) findViewById(R.id.home_icon);
homebutton.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
        Intent intent = new Intent(context, MainActivity.class);
        startActivity(intent);
    }
});
homebutton.setOnLongClickListener(new OnLongClickListener() {
    public boolean onLongClick(View arg0) {
        Toast.makeText(getApplicationContext(), "Long Clicked " , Toast.LENGTH_SHORT).show();
        return false;
    }
});

Итак, здесь я получаю что-то не так, даже одиночный клик работает отлично, и длинный клик также работает, но проблема в том, что после события длинного клика его также запускают MainActivity, как определено в выше код метода onClick..

Этого делать не следует, return false тоже есть, все равно не работает так, как я хочу.. Так что, кто - нибудь, пожалуйста, помогите мне его решить..

Заранее благодарю..

1 10

1 ответ:

Я считаю, что вам нужно вернуться TRUE в вашем методе onLongClick - сообщение фреймворку о том, что событие касания потребляется и дальнейшая обработка событий не требуется.

homebutton.setOnLongClickListener(new OnLongClickListener() {
    public boolean onLongClick(View arg0) {
        Toast.makeText(getApplicationContext(), "Long Clicked " ,
              Toast.LENGTH_SHORT).show();

        return true;    // <- set to true
    }
});