Textview не обновляется? - PullRequest
       4

Textview не обновляется?

2 голосов
/ 24 января 2011

Хорошо, раньше я смог определить таймер, но теперь у меня возникла другая проблема

Итак, когда я вызываю эту функцию с именем "getNextQuote ();"в первый раз в onCreate () он обновляет и получает случайную кавычку и отображает ее отлично, однако, когда я пытаюсь снова, в onResume () он по какой-то причине не обновляется.

public void getNextQuote(){

    TextView tv = (TextView) findViewById(R.id.quote);//Text To be edited
    Random QuoteNum = new Random();     

    int Quote = QuoteNum.nextInt(50);

    android.util.Log.i("DebugB",""+Quote);

    String q = myString[Quote];//find which string is corresponding to the number
    tv.setText(q);//Set the Text 

    android.util.Log.i("DebugC",q);
}

что-нибудьочевидно, я скучаю ???В журнале появляются новые кавычки, как и предполагалось, но они просто не обращаются к реальному экрану эмулятора.

1 Ответ

6 голосов
/ 24 января 2011

попробуйте это:

int i = 0;

public void getNextQuote(){

runOnUiThread(new Runnable() {

    @Override
    public void run() {
        TextView tv = (TextView) findViewById(R.id.quote);//Text To be edited
        tv.setText("test"+i);//Set the Text
        i++;
    }
});

}

Это количество test0, test1, test2, ... :) Просто поместите ваш код в этот runOnUiThread Когда я попробовал ваш код, я получил ошибку (из-за потока). Также проверьте, достаточно ли короткий интервал. Просто попробуйте 1000 мсек. :)

UPDATE:

Может быть, это лучший подход, если использовать Runnable (не знаю) :)

int i = 0;

Runnable updateTextView = new Runnable() {

    @Override
    public void run() {
        TextView tv = (TextView) findViewById(R.id.text_view);//Text To be edited
        tv.setText("test"+i);//Set the Text
        i++;
    }
};

public void getNextQuote(){

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