尝试使用findVIEwByID()获取自定义view时,我遇到了一个问题.否则,自定义视图将正确显示和运行.不幸的是,我需要能够随意更改它显示的一些数据,因此必须完成.
我的XML看起来像这样:
我知道有时问题是人们不小心在XML中命名组件“VIEw”而不是它们的子类.
在我的Activity的onCreate()方法中,我有这个:
myChart=(Chart)findVIEwByID(R.ID.chart); //where myChart is an object of type Chart
抛出ClassCastException.
我决定尝试一下,然后将行更改为此,以查看是否仍然收到ClassCastException:
VIEw chart=(VIEw)findVIEwByID(R.ID.chart);
这很好用,告诉我findVIEwByID给我一个VIEw没有问题.但它不想给我一张图表.
就Chart类而言,它是VIEw的一个非常简单的子类,看起来可以正常工作.
public class Chart extends VIEw{ public Chart(Context context) { super(context); init();}public Chart(Context context,AttributeSet attrs) { super(context,attrs); init();}public Chart(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); init(); } /* More stuff below like onDraw,onMeasure,setData,etc. */}
我可能只是在做一些愚蠢的事情.你们有什么想法吗?谢谢你的帮助!最佳答案出于好奇,是xml在另一个布局中使用< include>标签?
我有一个像这样的问题,我们在vIEwflipper中包含了另一个xml布局
< include layout =“@ layout / some_layout.xml”>而且findvIEwbyID得到了错误的小部件.我必须在< merge>< / merge>中包装整个外部布局标记,以允许它正确合并到基本布局中.
如果要包含,请尝试将布局更改为此.
编辑:查看有关合并如何工作的this link 总结
以上是内存溢出为你收集整理的java – 检索自定义视图时的Android ClassCastException全部内容,希望文章能够帮你解决java – 检索自定义视图时的Android ClassCastException所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)