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

时间:2016-08-04 09:10:21

标签: nullpointerexception calendar crash orientation

我有一个显示TextView的布局,用于显示滴答时间。我按照此链接中的代码

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

我在这里遇到了同样的问题但我修好了

Intent extras null on configuration change

以下是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();

2 个答案:

答案 0 :(得分:2)

在您的代码 timeDisplay 对象为空。

确保您的textview ID正确无误。仔细检查此行timeDisplay = (TextView)findViewById(R.id.txtTime);

我认为您的ID txtTime 不正确。

希望它会有所帮助。

答案 1 :(得分:0)

好吧所以我最终解决了它,它崩溃的唯一原因是因为在定位期间我使用的布局没有 TextView Mitesh Vanaliya 声明是正确的。所以我由于来自

Ayyappan ,使用此代码在定位时关闭它来修复它

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

关闭时钟

std::pair

要将其打开,只需将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();