2015-11-06 90 views
0

嗨,大家好,我有下面的代碼,應該倒數到某個日期,但我得到NullPointerException ontick的某個地方。有人能指出問題出在哪裏嗎?以下是將在MainActivity.java中顯示的倒數計時器。Android中的CountDown Timer。推送到TextView

GregorianCalendar gc = new GregorianCalendar(); 
    long currentTime = gc.getTimeInMillis(); 
    GregorianCalendar futureDate = new GregorianCalendar(); 
    futureDate.set(2015, 10, 14, 0, 0, 0); 
    long difference = futureDate.getTimeInMillis() - currentTime; 

    long x = difference/1000; 
    final long second = x % 60; 
    x = x/60; 
    long minutes = x%60; 
    x /= 60; 
    long hour = x % 24; 
    x /= 24; 
    long days = x; 
    //end of timer logic to use 

    // injecting into the user interface 
    timerDays = (TextView) findViewById(R.id.timerday); 
    myClock = new CountDownTimer(difference, 1000) { 
     @Override 
     public void onTick(long millisUntilFinished) { 
      String secs = Long.toString(second); 
      timerDays.setText(secs); 
     } 

     @Override 
     public void onFinish() { 
      timerDays.setText("done!"); 
     } 
    }.start(); 

的logcat的消息如下:

11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime: FATAL EXCEPTION: main 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime: Process: com.iantheninja.ndw, PID: 16925 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iantheninja.ndw/com.iantheninja.ndw.MainActivity}: java.lang.NullPointerException 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2344) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.access$800(ActivityThread.java:154) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:110) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:193) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5328) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:515) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime: Caused by: java.lang.NullPointerException 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at com.iantheninja.ndw.MainActivity.onCreate(MainActivity.java:55) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.Activity.performCreate(Activity.java:5279) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308) 
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.access$800(ActivityThread.java:154)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.os.Handler.dispatchMessage(Handler.java:110)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.os.Looper.loop(Looper.java:193)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at android.app.ActivityThread.main(ActivityThread.java:5328)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at java.lang.reflect.Method.invokeNative(Native Method)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at java.lang.reflect.Method.invoke(Method.java:515)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)  
11-06 15:44:32.915 16925-16925/com.iantheninja.ndw E/AndroidRuntime:  at dalvik.system.NativeStart.main(Native Method)  
+0

你想顯示什麼?並立即崩潰? –

+0

請把Logcat的錯誤日誌。 – DarwinLouis

+0

你檢查了R.id.timerday是否正確?可能是timerDays爲空 –

回答

0
timerDays = (TextView) findViewById(R.id.timerday); 

您可能沒有查看有ID R.id.timerday

+0

已在代碼中@tiny – iantheninja

+0

是否timerDays =(TextView)findViewById(R.id.timerday)line55?嘗試解析xml你setContentView()。最好是,如果你provoide完整的代碼的活動和佈局。 –