ClassCastException: android.widget.Button

本小妞迷上赌 提交于 2020-01-02 04:05:56

问题


I have a really really really strange issue here.

I have this line of code:

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

And it throws a ClassCastException: android.widget.Button as the title indicates. The XML file looks like this:

...
<SeekBar
android:id="@+id/SeekBar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
...

If I change the code to

Button mProgressBar =  (Button) findViewById(R.id.SeekBar);

It "works" (e.i that single line works. The programs then fails for other reasons because it's now a button). I have the exact same line in another file without problems. Any idea what could be wrong?


回答1:


Must be an outdated auto-generated R class. Sometimes it gets messed up, i had it just moments ago. Try to clean the project and rebuild again. Or change something in the layout XML and save, Eclipse should refresh the R class (that is, if you're using eclipse).




回答2:


If it's an outdated R class and your Eclipse is not updating it, then just create a new XML layout file with the same contents as the previous one. Then delete the previous layout file. Your R class should then be updated. I have this problem frequently on Linux, and this is the solution that works for me.

Choosing Project -> Clean does NOT solve my problem on Linux because the R class doesn't get recreated...




回答3:


Have you checked you got the right Button class from the right library imported. Sometimes other libraries can provide their own implementation and Eclipse will choose them over android.widget.Button. Obviously this will cause a crash as your layout will be referring to the button in the android library.



来源:https://stackoverflow.com/questions/6076426/classcastexception-android-widget-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!