2011-01-23 17 views
2

さて、私は以前のタイマーを見つけることができましたが、別の問題が発生しました。テキストビューは更新されませんか?

したがって、私はこの関数を "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); 
} 

明らかに何かが不明ですか? ログには、新しい引用符が想定されているように出てきますが、実際のエミュレータ画面には表示されません。これは、TEST0、TEST1、TEST2、... :)ちょうどそのrunOnUiThreadにコードを置くをカウント

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++; 
    } 
}); 

}

答えて

5

はこれを試してみてください。私はあなたのコードを試したとき、私はエラーを持っています(スレッドのため)。また、間隔が十分に短いかどうかを確認してください。ちょうど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); 
} 
+0

こんにちはを再利用することで、より良いaproachで、おかげで...それは完璧に動作..私おそらくこの前に述べたはずですが、私は1週間Androidをプログラミングしていたので、私は巨大なnooooooobのハハです。ありがとう= D – QQWW1

+0

さて、私はあなたの問題を知っています。 Googleで無限の時間を無駄にする前に尋ねるほうがいいです(^^のように)。 :) – Rainer

関連する問題