java – 检索自定义视图时的Android ClassCastException

前端之家收集整理的这篇文章主要介绍了java – 检索自定义视图时的Android ClassCastException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

尝试使用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

原文链接:https://www.f2er.com/android/430494.html

猜你在找的Android相关文章