2 lantianyiming lantianyiming 于 2013.01.17 14:46 提问

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" />

2个回答

usniyo
usniyo   2013.01.17 19:30
已采纳

布局文件里申明的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);
baimy1985
baimy1985   2013.01.17 22:22

你用的seekbar不是系统的seekar,是你自定义的吧,所以才会类型转换错误

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java.lang.ClassCastException: android.widget.ProgressBar cannot be cast
原因:控件名字写错了 ,例如本来xml里面写的是button控件,结果在java里面写的是imageview控件
一个ClassCastException引发的思考
一个ClassCastException引发的思考,在做一个简单的功能试验时,代码抛出了下面的异常 明明类的完全限定名是一样的,竟然会转换失败。。。 完整的项目代码如下所示 import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.se
Android布局中的ClassCastException
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。但是在布局中出现的ClassCastException的比较少见,甚至找不到哪里有类型转换。 一、先介绍什么是ClassCastException。 nimal表示动物,Dog表示狗,是动物的子类,Cat表示猫,是动物的子类。看下面的代码: Animal a1 = new Dog();  /
ClassCastException深入分析与JVM
ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行
关于java泛型擦除与ClassCastException的问题
今天在复习java泛型时遇到一个疑问:即然java泛型的原理是编译时定,运行时擦除,那为什么还会在运行时抛出ClassCastException异常呢? 问题代码如下:ArrayList<String> list = new ArrayList<String>();//泛型类型为String Method method = list.getClass().getMethod("ad
listView多布局出现ClassCastException的解决
这几天在开发的过程当中需要用到listView加载不同的布局,在加载多布局时,需要用到ViewHolder1和ViewHolder2 ,并且两者都需要setTag和getTag , 但是在有的时候会出现ClassCastException,这是因为listView会复用convertView,当convertView不为null的时候就会选择利用上面加载过的,但是它并不知道哪个布局是与自己同布局的,
使用Spring容器取出Bean时的奇怪的ClassCastException
今天在练习使用Spring的时候遇到了一个奇怪的BUG,在容器中取出的Bean只能转换为接口而不能转换为其实现类,现记录如下:j接口Thinker代码如下:package com.zdz.util;public interface Thinker { void thinkOfSomething(String thought); }其实现类Volunteer类如下:package com.zd
打正式包混淆后fastjson报错ClassCastException和其他bean报错崩溃问题
今天要准备测试了,打了一个正式包,结果程序崩溃,错误信息是bean的类型转换错误 ClassCastException 网上查了一圈后找到出错原因:没有让proguard保持泛型 解决方法,在混淆文件proguard中加入泛型-keepattributes Signature类型转换问题解决了,后面又报一个崩溃信息:com.alibaba.fastjson.JSONException: defa
SeekBar小结
seekbar默认的最小值是0,可是现实中许多的时候最小值,却不是0,所以需要自定下。 一个取巧的办法就是,在重写的方法中,自己修改进度值。 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated me
SeekBar的使用和竖向的SeekBar
这是实现的几个seekbar的效果图,大家可以先看看: 第一个seekbar是以提供的bitmap为背景,然后进度条是透明的效果<SeekBar android:id="@+id/horiSeekBar" android:layout_width="match_parent" android:layout_height="wrap_content