2013-07-02 3 views
0

TextView를 확장하는 CalendarCell이라는 클래스를 만들었습니다. TableLayout 내부의 TableRow에 인스턴스를 몇 개 추가했습니다.이 인스턴스를 반복하고 그 내부에 메서드를 사용하고 싶습니다. 보기 (또는 텍스트 뷰)에서하지만, TableRow의 방법 "getVirtualChildAt"는보기가 아닌 CalendarCell를 반환하고 난 (분명히) 캐스트 할 수없는 톤 CalendarCell수퍼 클래스를 Android에서 하위 클래스로 캐스팅

+0

'view instanceof CalendarCell' – Simon

+1

캐스팅 할 수없는 (명백한) 이유는 무엇입니까? – nif

+0

어리석은 롤백 및 일관성없는 * 타사 강조 표시 악용 –

답변

1

CalendarCell 클래스는 View의 서브 클래스 TextView를 확장하기 때문에, 검색된 개체가 CalendarCell의 인스턴스인지 확인한 다음 안전하게 CalendarCell 인스턴스로 캐스팅 할 수 있습니다.

View view = tableRow.getVirtualChildAt(i); 
if (view instanceof CalendarCell) { 
    CalendarCell calendarCell = (CalendarCell) view; 
    // Here you can access calendarCell object 
} 
관련 문제