2015-05-30 2 views
0

Так что я view, который сделан из в середине одного TextView и изменить текст в этом TextView в соответствии с действием пользователя, но когда я использую следующий код:Почему setText не работает?

if(condition == 1){ 
    mainText.setText("Correct"); 
    try { 
     wait(100); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
    Random r = new Random(); 
    int idx = r.nextInt(names.length); 
    random = (names[idx]); 
    mainText.setText(random); 
    condition = 0; 
} 

mainText Безразлично» t изменить на Исправить, но он изменится на случайный.

Любая идея о том, как это исправить, благодаря

+1

wait (2000) поможет здесь. –

+0

Вы, кажется, блокируете поток пользовательского интерфейса для 100 мс. Это предотвращает перерисовку пользовательского интерфейса и выводится только значение _random_. – harism

+0

@SteveBenett, но мне нужно только его остановить в течение 100 мс и 2 секунды - это много –

ответ

0

Вы не можете использовать задержки в потоке пользовательского интерфейса, она не будет выполнена на 100% времени.

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

view.setText("something"); 
view.postDelayed(new Runnable(){ 
    public void run(){ 
     view.setText("somethingelse."); 
    } 
}, 200); 
+0

, что я должен заменить вид в представлении view.postRunnable (новый Runnable() {'с? –

+0

any? Я использую один Я обновляю –

+0

, он не работает, я изменил представление на mainText (который является текстовым), и он дает мне возможность не разрешить ошибку postRunnable. –

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