0

问题:

这是我的情况:

public class customView extends View {
    myView = new RelativeLayout(...);
    //...
    public customView getLayout() {
        return (customView) myView;
    }

    public void myFunction(){}
}

那么,如果我这样做:

customView cv = new customView();
cv.setId(100);
// mainLayout si riferisce alla View principale
mainLayout.addView(cv.getLayout());

在我尝试获取之前制作的新“customView”时,它会返回 ClassCastException。

( (custonView) mainLayout.findViewById(100) ).myFunction();

它说我不能在 customView 中投射 RelativeLayout

我的 customView 显示了一个带有一些新功能的 RelativeLayout:当我创建它时,一个计时器在 TextView 嵌入中启动。

当我回忆起该对象时,我应该能够停止计时器计时器(停止计时器功能已编写并完全正常工作)。

谢谢大家

回答:

public class customView extends View {
    public void customView(Context context){
        myView = new RelativeLayout(...);
        **addView(myView);**
    }
    //...
    //public customView getLayout() {
    //    return (customView) myView;
    //}

    public void myFunction(){}
}

并用

customView cv = new customView();
cv.setId(100);
//mainLayout si riferisce alla View principale
//mainLayout.addView(cv.getLayout());
mainLayout.addView(cv);
4

1 回答 1

0

您应该能够RelativeLayout在您的自定义类中进行扩展。它不会让你的整个事情变得更容易吗?您仍然可以向其添加自定义逻辑。

我认为,您的代码中的问题是您添加了 a RelativeLayoutmainLayout而不是添加自己的customView.

于 2013-09-30T21:35:16.257 回答