2017-07-17 21 views
1

我正在閱讀Big Nerd Ranch Guide Android開發第2版,我目前正在使用CriminalIntent應用程序。我正在逐步跟蹤教程,但似乎有一個錯誤,可能是由於本書後發佈的更新。我試圖檢索我的Date值並將其設置爲我的按鈕上的文本。無法使用CharSequence或toString()檢索日期

書表明,我這樣做:mDateButton.setText(mCrime.getDate().toString());

我這樣做,並且還試圖把它包在CharSequence以及這樣mDateButton.setText((CharSequence) mCrime.getDate());,這是建議,當我按下Alt-進入。在這兩種情況下,這是我從堆棧跟蹤獲取:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jadecondos.criminalintent/com.example.jadecondos.criminalintent.CrimeActivity}: java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.CharSequence 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
      at android.app.ActivityThread.-wrap12(ActivityThread.java) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:154) 
      at android.app.ActivityThread.main(ActivityThread.java:6119) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
      Caused by: java.lang.ClassCastException: java.util.Date cannot be cast to java.lang.CharSequence 
      at com.example.jadecondos.criminalintent.CrimeFragment.onCreateView(CrimeFragment.java:54) 

我試圖要通過這本書,如果我錯過了一些東西,但沒有。我無法在StackOverflow上找到相關問題。我感謝所有幫助。

謝謝。

+0

異常文本很明顯:java.util.Date不能轉換爲java.lang.CharSequence。即使你的IDE建議它,它也不起作用。 –

+1

有什麼辦法解決這個問題? –

+0

好吧...這本書suggstes的線有什麼問題? ;-) –

回答

1

問題出在IDE上。這本書的建議是正確的建議。 IDE的問題在於,我使用的計算機爲每次新運行保留了以前的堆棧跟蹤,因此即使我在代碼中修復了問題,我的應用仍會崩潰,顯示相同的堆棧跟蹤。

我如何解決它是一個更好的(我自己的)筆記本電腦。

+1

感謝您報告問題所在;當有人回答自己的問題時,我們總是很感激。如果您認爲您的問題和答案可以幫助他人,請解釋IDE的問題以及您如何解決問題。如果沒有,請考慮刪除該問題(也許在幾天內,善意的人評論有機會看到您的答案)。 –

+1

感謝您的提示。我編輯了我的答案。如果問題得到很好的解答,你是否介意提問? –