Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Textview未正确刷新_Android_Textview - Fatal编程技术网

Android Textview未正确刷新

Android Textview未正确刷新,android,textview,Android,Textview,我对文本视图有问题。当我用settext更改文本值时,旧值不会消失,新值会被覆盖。所以几秒钟后,它就完全难以辨认了。我不知道如何用英语命名这个bug,这就是为什么我给你发下面的截图(编辑:我不能发布它) 我的源代码: public class AlarmActivity extends Activity { int tempsRestant; @Override protected void onCreate(Bundle savedInstanceState) { super.o

我对文本视图有问题。当我用settext更改文本值时,旧值不会消失,新值会被覆盖。所以几秒钟后,它就完全难以辨认了。我不知道如何用英语命名这个bug,这就是为什么我给你发下面的截图(编辑:我不能发布它)

我的源代码:

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()做了很多尝试(在根视图上,在父视图上),但我总是有相同的错误


事实上,我不明白是视图刷新还是线程(倒计时线程)有问题。

你可以试试这段代码,但我认为问题可能出在你的设备上,我在Android 4.2.2和2.2中试用了你的代码,它可以工作:

mTextField.setText("");
mTextField.setText("00:" + tempsRestant);
((View) mTextField.getParent()).invalidate();

try:textView.setText(“”);然后是textView.setText(“新字符串出现在这里。”);我尝试了settext(“”),这是我从未尝试过的,但我也有同样的错误。只是想知道,为什么你要用
post
更新
TextView
?为什么不干脆:
public void onTick(long millisuntilfished){tempsRestant=(int)millisuntilfished/1000;mTextField.setText(“00:+tempsRestant”);}
我的Galaxy S(Android 4.2.2)也有同样的问题。模拟器正在运行android 2.2