У меня проблема с приложением, которое я сейчас создаю для телефонов Android. У меня есть активность, которая имеет две кнопки. Суть в том, что если я нажимаю обе кнопки достаточно быстро (это нехорошее поведение пользователя), эти две кнопки срабатывают, в то время как я хочу просто активировать (самое большее) только одну из них. Это фрагмент кода для примера, что я имею в виду:
public class ActivityLevels extends Activity {
private boolean launched;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set the content view of the screen
setContentView(R.layout.levels);
//Set lauched flag to false
launched = false;
//Initialize buttons
Button loadLevel01 = (Button) findViewById(R.id.ButtonLoadLevel01);
Button loadLevel02 = (Button) findViewById(R.id.ButtonLoadLevel02);
//Set Button Listeners
loadLevel01.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
launchGame(0);
}
});
loadLevel02.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
launchGame(1);
}
});
}
private void launchGame(int level) {
//Just launch the activity if !lanched
if(!launched) {
launched = true;
//Start Activity
}
}
}
Я проверял интернет в течение недели или около того, и не нашел никакого способа предотвратить это. Насколько я обнаружил, похоже, что кто-то уже опубликовал подобную проблему здесь: Выпуск 20073: Кнопка прослушивания onClick может быть запущена дважды, даже если кнопка отключена немедленно в слушателе
Кстати, я также пытался отключить кнопку непосредственно перед вызовом launchGame (int), но ничего не добился.
Этот код является всего лишь адаптированным фрагментом всей деятельности. Я думаю, что все в порядке, чтобы понять, что я имею в виду, но если вам нужно другое описание, пожалуйста, дайте мне знать.
Заранее спасибо, и извините за любые орфографические ошибки, мой английский совсем не очень хорош.