Android - Как вы перерисовываете кнопку меню после динамического изменения? - PullRequest
1 голос
/ 25 ноября 2011

У меня есть простое всплывающее меню с несколькими кнопками. Одна кнопка запускается отключена. Мне нужно включить его через 1 секунду. Код ниже, по-видимому, включает кнопку, но она не будет перерисована, пока я не нажму другую кнопку в форме.

В методе onCreate ():

    Timer timer = new Timer();
    timer.schedule(new UpdateTimeTask(), 1000, 200);

Затем в методе UpdateTimeTask:

    public void run() {
           ((Button) findViewById(R.id.myButton)).setEnabled(true);
       }

Когда кнопка включена, почему она не перерисовывается автоматически? Кажется, он остается отключенным, пока я не нажму другую кнопку, а затем внезапно появится, как будто он включен.

«invalidate ()» сразу после строки включения тоже не работает.

1 Ответ

0 голосов
/ 25 ноября 2011

В итоге я использовал Runnable вместо Timer. Эта статья очень помогла: http://developer.android.com/resources/articles/timed-ui-updates.html

Мне не нужно было использовать invalidate или refreshDrawableState, поскольку все это делается в одном потоке пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...