2014-01-03 2 views
0

В моем приложении я хочу, чтобы случайная кнопка исчезала каждую секунду.Disappear buttons in android

Мое состояние теперь в том, что у меня отсчет времени от 30 секунд до 0. Каждый раз, когда я нажимаю кнопку, он исчезает, а другой отображается. Теперь я хочу автоматизировать, что каждую секунду случайная кнопка ушла, а другая показана. Вот мой код до сих пор:

метод
tv = (TextView) findViewById(R.id.tv); 
    new CountDownTimer(30000, 1000) { 

     public void onTick(long millisUntilFinished) { 
      tv.setText("F " + millisUntilFinished/1000); 
      System.out.println("HHH"); 
     } 

     public void onFinish() { 
      tv.setText("done!"); 
      Toast t = Toast.makeText(MainActivity.this, "Ihr Highscore: " + count, Toast.LENGTH_LONG); 
      t.show(); 
     } 
    }.start(); 

setNextButton называется каждый раз, когда пользователь нажимает кнопку, что я хочу сейчас, что называется каждый второй автоматически:

public void setNextButton(Button str){ 

    System.out.println("&&&&&&&&&&& SETNEXTBUTTON"); 
    str.setVisibility(ImageButton.GONE); 
    int zufall = (int) (Math.random()*23); 
    int buttonid = str.getId(); 
    int buttonname = (int) str.getId(); 
    String buttonneu = "button" + zufall; 
    System.out.println("&&&&&&&&&&&" + getResources().getResourceEntryName(buttonid)); 

    int[] buttonIds = {R.id.button1, R.id.button2, R.id.button3, R.id.button4, R.id.button5, R.id.button6, R.id.button7, R.id.button8, 
      R.id.button9, R.id.button10, R.id.button11, R.id.button12, R.id.button13, R.id.button14, R.id.button15, R.id.button16 , 
      R.id.button17, R.id.button18, R.id.button19, R.id.button20, R.id.button21, R.id.button22, R.id.button23, R.id.button24 }; 
    Button bnew = (Button) findViewById(buttonIds[zufall]); 
    //Toast.makeText(this, "$ " + getResources().getResourceEntryName(bnew.getId()), Toast.LENGTH_LONG).show(); 
    if(bnew.getId() == str.getId()){ 
     bnew = (Button) findViewById(buttonIds[zufall]); 

    } 

    bnew.setVisibility(ImageButton.VISIBLE); 
    count++; 

    //b.setEnabled(enabled) 
} 

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

ответ

0

Существует отличный ответ на этот вопрос Дэйвом: android timer.

Посмотрите на это. надеюсь, что это поможет

+0

Спасибо, хорошо выглядит. Просто еще один короткий вопрос: у меня есть кнопка 26, одна видна, другие установлены в GONE. Как я могу получить тот, который виден? – user896692

+0

Вы можете перебирать все кнопки и видеть, какая из них имеет видимость, установленную в VISIBLE –

+0

, или вы можете сохранить идентификатор кнопки, которая видна. 'private integer id_button;' создавать геттеры и сеттеры, а затем 'setIdButton (buttonIds [zufall]);' – Dyna