2013-09-30 2 views
0

질문 : 내가 할 경우, 다음캐스트있는 CustomView

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의를 rappresent 내가있는 CustomView

에 RelativeLayout의 캐스팅 할 수 있다고 말한다.

개체를 기억할 때 타이머 타이머를 중지 할 수 있어야합니다 (타이머 기능을 중지하고 완전히 작동 함).

감사합니다 모두

답변 :

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

이 줄에 문제가 발생하면 return (customView) myView; 캐스트 할 수 없습니다. View to RelativeLayout –

답변

0

으로 전화 당신은 사용자 정의 클래스에 RelativeLayout를 확장 할 수 있어야합니다. 너를 위해 모든 것을 더 쉽게 만들지 않을까? 사용자 지정 논리를 계속 추가 할 수 있습니다.

코드에서 문제가되는 것은 RelativeLayoutmainLayout에 추가하는 것이고, 사용자는 customView을 추가하지 않는다고 생각합니다.

+0

동일한 예외 인 RelativeLayout을 확장하려고했습니다. 당신이 말하는 것,하지만 어떻게 내 customView 대신 RelativeLayout을 추가 생각하십니까? – Soul

+0

이 경우 사용자 지정 RelativeLayout을 추가 할 것입니다. 그렇지 않습니까? 그게 문제인지 모르겠다. – Szymon

관련 문제