2012-03-07 3 views
0

У меня есть ImageButton, и мне нужно придать статус кнопки нажатой, когда пользователь нажимает на нее, пока пользователь не нажмет на нее снова.Как сохранить один ImageButton нажатым, когда пользователь нажимает на него?

I судимого с этим кодом:

 portada.setOnTouchListener(new OnTouchListener(){ 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      portada.setPressed(!portada.isPressed()); 
      return true; 
     }      
    }); 

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

Как я могу решить эту проблему?

Благодаря

+2

Просто, чтобы быть уверенным: вы знаете о [ToggleButton] (http://developer.android.com/reference/android/widget/ToggleButton.html) ? – ernazm

ответ

1

Решено:

ImageButton portada....... 

portada.setOnTouchListener(new OnTouchListener(){ 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction()==MotionEvent.ACTION_DOWN) //esto es necesario para evitar que salte el evento muchas veces con una sola presión del dedo. 
        portada.setPressed(!portada.isPressed()); //invertimos el estado del botón 
       return true; 
      }      

     }); 
Смежные вопросы