问题:
这是我的情况:
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);
答案 0 :(得分:0)
您应该能够在自定义类中扩展RelativeLayout
。难道不会让整件事变得更轻松吗?您仍然可以为其添加自定义逻辑。
我认为您的代码中的问题是,您向RelativeLayout
添加mainLayout
,而不是添加自己的customView
。