我使用'可搜索的词典'来进入Android开发。
我的问题是在修改XML布局时我得到了一些ClassCastException
。
我的猜测是R文件已经过时,但奇怪的是,即使重新创建它,我仍然遇到问题。
以下是相关的代码和日志:
日志文件:
引起:java.lang.ClassCastException:android.widget.ImageButton E / AndroidRuntime(438):at eu.accleaner.android.WordActivity.onCreate(WordActivity.java:87)
活动中的有罪行:
mDefinition = (TextView) findViewById(R.id.definition);
提前感谢您的帮助。
干杯,
文森特
答案 0 :(得分:3)
从它的外观来看,XML中有一个ID为“定义”的ImageButton,并且您正在尝试将其转换为TextView。将TextView强制转换为ImageButton。
答案 1 :(得分:3)
我有类似的问题。 R.java基于android:id在xml中生成ID:
public static final int imageButton01=0x7f050001;
public static final int definition=0x7f050002;
当我添加新的图像按钮时,R.java将更新为
public static final int imageButton01=0x7f050001;
public static final int imageButton02=0x7f050002;
public static final int definition=0x7f050003;
由于同步问题R.id.definition
在0x7f050002
中返回旧ID mDefinition = (TextView) findViewById(R.id.definition);
但根据更新的R.java,它对应于另一个元素(ImageButton02)。
所以我们有ClassCastException
答案 2 :(得分:0)
解决方法:在Layout XML和findViewById()中分配一些新的'id'值。
这很可能是一个错误。