方向上的动态时间显示崩溃

Dynamic time display crash on orientation

我有一个布局将显示 TextView,它用于显示滴答作响 time.I 遵循此 link

中的代码

How to Display current time that changes dynamically for every second in android

但我得到一个错误

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

我在这里遇到了同样的问题,但我已经解决了

这是 Java 个代码

void clockTicking(){
final CountDownTimer newtimer = new CountDownTimer(1000000000, 1000) {

  public void onTick(long millisUntilFinished) {
    timeDisplay = (TextView)findViewById(R.id.txtTime);

    Calendar c = Calendar.getInstance();
    timeDisplay.setText(c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND)+" PM");
  }
  public void onFinish() {
  }
};
newtimer.start();

在您的代码中 timeDisplay 对象为空。

确保您的文本视图 ID 正确。仔细检查此行 timeDisplay = (TextView)findViewById(R.id.txtTime);

我认为你的 id txtTime 不正确。

希望对您有所帮助。

好的,所以我终于修复了它,它崩溃的唯一原因是因为在定向期间我使用的布局没有 TextViewMitesh Vanaliya 声明是 correct.So 我通过使用此代码在定向时将其关闭来修复它,这要感谢 Ayyappan 来自

How to Display current time that changes dynamically for every second in android

关闭时钟

void clockUnTicking(){
CountDownTimer newtimer = new CountDownTimer(1000000000, 1000) {

  public void onTick(long millisUntilFinished) {
    timeDisplay = (TextView)findViewById(R.id.txtTime);

    Calendar c = Calendar.getInstance();
    timeDisplay.setText(c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));
  }
  public void onFinish() {

  }
};
newtimer.cancel();
}

打开它只需将 newtimer.cancel(); 替换为 newtimer.start()