2013-09-30 37 views
0

问:演员customView从ID

这是我的情况:

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()); 

它返回的那一刻我尝试一个ClassCastException得到我以前制作的新“customView”。

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

它说,我不能在customView

投下的RelativeLayout我customView rappresent一个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

这行返回的问题(customView)myView; 您无法将视图投射到RelativeLayout –

回答

0

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

我认为你代码中的问题是你添加了一个RelativeLayoutmainLayout,你没有添加你自己的customView

+0

我也试图扩展RelativeLayout,同样的例外。我想你说什么,但如何添加我的customView而不是RelativeLayout? – Soul

+0

在这种情况下,您将添加您的自定义RelativeLayout,不是吗?我不确定这是问题所在...... – Szymon