1

私はどこでも答えを探しましたが、私の状況に合った答えを見つけることができません。いくつか問題があり、ミリ秒のカウントダウンも含める方法がわかりません。00.00(seconds.milliseconds)の形式でカウントダウンタイマーを取得しようとしています。ボタンはタイマーを開始するために使用されます。私が使用する時間は、押されたボタン、5、10、15、30、または90秒によって異なります。今のところ簡単にするために、5000ミリ秒にハードコードされているとだけ言います。

long timeSecs = 5000; // really timeSecs is dynamic but for the sake of simplicity 
long countDownInterval = 1000; // this is a static value
TextView TVcountDown = (TextView)findViewById(R.id.TVcountDown);

public void createTimer() {

    new CountDownTimer(timeSecs, countDownInterval) {
        public void onTick(long millisUntilFinished) {
            TVcountDown.setText(millisUntilFinished / 1000); // error here on
//.setText unless I cast to an int, which all values are long so I'm not sure why
        }

        @Override
        public void onFinish() {
            TVcountDown.setBackgroundColor(R.color.solid_red); // error here
            TVcountDown.setTextColor(R.color.white);  // error here
            TVcountDown.setText("Expired"); // it will make it here
      // It doesn't count down, just goes straight to onFinish() and displays "Expired"
        }

    }.start();
}

前もって感謝します。私はしばらくの間机に頭を打ちつけてきました。

4

1 に答える 1

3

これを試して。setTextの場合

TVcountDown.setText("" + (millisUntilFinished / 1000)); 

色は

Resources res = getResources();
TVcountDown.setBackgroundColor(res.getcolor(R.color.solid_red));
TVcountDown.setTextColor(res.getcolor(R.color.white));  

設定する前に、カラーリソースからカラーを取得する必要があります。

于 2012-08-17T21:17:43.657 に答える