程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-SeekBar報出ClassCastException

java-SeekBar報出ClassCastException

編輯:編程綜合問答
SeekBar報出ClassCastException

使用HoloEverywhere的SeekBar,如下:

import org.holoeverywhere.widget.SeekBar;
import org.holoeverywhere.widget.SeekBar.OnSeekBarChangeListener;

最開始運行正常,到了編譯的時候,在下面這行報出ClassCastException異常:

sectionTimeElapsedSeekBar = (SeekBar) findViewById(R.id.sectionTimeElapsedSeekBar);

下面的是相應的XML文件:

<SeekBar
        android:id="@+id/sectionTimeElapsedSeekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/startOrPauseTimerButton"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="16dp"
        android:max="2100" />

最佳回答:


布局文件裡申明的seekbar默認是android.widget.SeekBar, findViewById(id)得到的也是android.widget.SeekBar,而你使用的是org.holoeverywhere.widget.SeekBar,並將android.widget.SeekBar強制轉換成org.holoeverywhere.widget.SeekBar了,這裡的兩個seekbar並不是一同一個類,要麼org.holoeverywhere.widget.SeekBar是和ndroid.widget.SeekBar類似的類,要麼就是ndroid.widget.SeekBar的子類,你這樣強制轉換當然會出異常。你可以在布局文件中這樣申明:

<org.holoeverywhere.widget.SeekBar
        android:id="@+id/sectionTimeElapsedSeekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/startOrPauseTimerButton"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="16dp"
        android:max="2100" />

使用時是這樣的:

sectionTimeElapsedSeekBar = (org.holoeverywhere.widget.SeekBar) findViewById(R.id.sectionTimeElapsedSeekBar);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved