1

このような基本的な質問をして申し訳ありませんが、実際には、AndroidのtextViewに実際にテキストを割り当てる一定の時間間隔の後にメソッドを呼び出す必要がありますが、これは変更されるはずです。そのための最善の方法を教えてください。期待していただきありがとうございます。

{
         int splashTime=3000;
         int waited = 0;
         while(waited < splashTime)
         {
             try {
                  ds.open();
                  String quotes=ds.getRandomQuote();
                  textView.setText(quotes);
                  ds.close();


              }
              catch(Exception e)
              {
                  e.printStackTrace();
              }
         }
         waited+=100;
     }
4

3 に答える 3

4

検討しましたCountDownTimerか?たとえば、次のようなものです。

     /**
     * Anonymous inner class for CountdownTimer
     */
    new CountDownTimer(3000, 1000) { // Convenient timing object that can do certain actions on each tick

        /**
         * Handler of each tick.
         * @param millisUntilFinished - millisecs until the end
         */
        @Override
        public void onTick(long millisUntilFinished) {
            // Currently not needed
        }

        /**
         * Listener for CountDownTimer when done.
         */
        @Override
        public void onFinish() {
             ds.open();
              String quotes=ds.getRandomQuote();
              textView.setText(quotes);
              ds.close(); 
        }
    }.start();

もちろん、ループに入れることもできます。

于 2012-12-14T12:34:41.163 に答える
1

Timer を使用して、次のように遅れて UI を更新できます。

    long delayInMillis = 3000; // 3s
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            // you need to update UI on UIThread
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    ds.open();
                    String quotes=ds.getRandomQuote();
                    textView.setText(quotes);
                    ds.close();
                }
            });
        }
    }, delayInMillis);
于 2012-12-14T12:36:44.200 に答える
1

ハンドラーを使用して Runnable に入れます。

int splashTime = 3000;
Handler handler = new Handler(activity.getMainLooper());
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        try {
            ds.open();
            String quotes=ds.getRandomQuote();
            textView.setText(quotes);
            ds.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}, splashTime);
于 2012-12-14T12:38:51.857 に答える