0

テキストビューに問題があります。settext でテキスト値を変更すると、古い値が消えず、新しい値が上書きされます。そのため、数秒後には完全に判読できなくなります。このバグに英語で名前を付ける方法がわかりません。そのため、次のスクリーンショットを投稿します(編集:投稿できません)

私のソースコード:

public class AlarmActivity  extends Activity {

int tempsRestant;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_alarm_pad);

    startCountdown();
}

void startCountdown(){
    //final View view=findViewById(R.layout.activity_alarm_pad).getRootView();
    //final View view=((ViewGroup)findViewById(R.layout.activity_alarm_pad)).getChildAt(0);

    final View view=this.findViewById(android.R.id.content);
    new CountDownTimer(59000, 1000) {
        TextView mTextField = (TextView) findViewById(R.id.countdown);
         public void onTick(long millisUntilFinished) {
             tempsRestant = (int)millisUntilFinished/1000;
            mTextField.post(new Runnable() {
                 public void run() {
                    mTextField.setText("00:" + tempsRestant);
                    ((View)mTextField.getParent()).invalidate();
                 }
             });
             //runOnUiThread(updateTimer());

         }

         public void onFinish() {
             mTextField.setText("Systeme actif");
         }
      }.start();


}
}

.invalidate() (親ビューのルート ビュー) で多くのことを試しましたが、常に同じバグがあります...

実際、ビューの更新の問題なのか、スレッド (カウントダウン スレッド) の問題なのかわかりません。

4

1 に答える 1