我有一个项目,我正在尝试为 ImageView 创建一个子类,以添加一些我想使用的方法。我只有几周的 Android 编码经验,所以我不是很有经验,而且对 OOP 还很陌生。因为我无法让它在我的主项目中工作,所以我做了一个小测试项目,唉,我得到了同样的错误。
首先,我创建了一个扩展 ImageView 的新类 ImageViewCustom.java
public class ImageViewCustom extends ImageView {}
(我已经添加了超类的构造函数)
在 XML 中,我在这里阅读后确实喜欢
<ImageView class="com.example.testcustomclass.ImageViewCustom"
android:id="@+id/imageViewCustom" ... />
这可以构建和运行,但是当我尝试像这样在 MainActivity 中引用它时
ImageViewCustom imageViewTest = (ImageViewCustom)
findViewById(R.id.imageViewCustom);
我得到...
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.testcustomclass.MainActivity}:
java.lang.ClassCastException: android.widget.ImageView
cannot be cast to com.example.testcustomclass.ImageViewCustom
我究竟做错了什么?D:我认为我遗漏了一些非常基本的东西,因为这是一个几乎是空的项目。仅供参考,我正在尝试在今晚之前完成一项任务(嗯!)并且得到了太多重复的代码,我想做一个子类,但我很难过和压力过大>_<睡眠不足等。
(编辑,修复代码格式...)