我有一个显示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();
答案 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();