В приложении на Android использую 10 кнопок и фокус при нажатии на кнопку.
Если я выбираю кнопку 1, она становится в фокусе, если я выбираю кнопку 2, то уже две кнопки в фокусе. Мне нужно поочерёдно выводить кнопки в фокус, то-есть, если я выбираю кнопку 2, то у первой фокус пропадает, а у второй появляется.
Код для кнопок:
View.OnTouchListener list = new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent event {
if(event.getAction()==MotionEvent.ACTION_DOWN){
view.setPressed(true);
switch (view.getId()) {
case R.id.bt0:
break;
case R.id.bt1:
break;
case R.id.bt2:
break;
...............
}
}
return true;
}
};
Попробуйте так
создайте метод в котором будете снимать фокус с требуемых кнопок
private void removeFocuseAllButton(){
//например так (можно лист перебрать в цикле)
//(или проверять, если есть фокус - снимать)
button1.clearFocus();
button2.clearFocus();
button3.clearFocus();
...
//10 кнопок думаю не проблема пробежать (:
}
в слушателе после события вызываете этот метод, далее как у вас задумано
View.OnTouchListener list = new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent event {
if(event.getAction()==MotionEvent.ACTION_DOWN){
removeFocuseAllButton();//здесь удаляем везде фокус
view.setPressed(true);
switch (view.getId()) {
case R.id.bt0:
break;
case R.id.bt1:
break;
case R.id.bt2:
break;
...............
}
}
return true;
}
};
Сборка персонального компьютера от Artline: умный выбор для современных пользователей