2012-06-22 2 views
0

У меня есть 4 кнопки в моем макете - они являются переключателями между 4-мя возможными содержимым View. Каждый раз, когда нажимается одна из этих кнопок, мне нужно выделить ее (просто загрузите другой фон, другое изображение и измените цвет текста). Проблема в том, что мне нужно, чтобы это было сделано с момента нажатия кнопки (не после клика) и до нажатия другой кнопки. Простое использование методов onClick() будет не очень хорошим, потому что мне нужно будет проверить, выделены ли другие кнопки, а также изменения будут сделаны только ПОСЛЕ щелчка. Любое хорошее решение для этого?Android: выделите кнопку до тех пор, пока не будет нажата другая кнопка

+0

Любые удачи на этом? – Barak

+0

К сожалению, это не сработает. После отпускания кнопки кнопка изменит цвет. Я также пробовал разные комбинации android: state_pressed и android: state_focused - не помогает. –

+0

UPD: решение было установить button.setFocusableInTouchMode (true); –

ответ

1

Как насчет прослушивания onFocusChange?

button.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      // set the background, image and color for focused 
     } else { 
      // set the background, image and color back to normnal 
     } 
    } 
}); 

Установите один из них для каждой кнопки, и вы должны быть установлены.

Смежные вопросы