2012-04-16 3 views
1

그것은 이상합니다. 어떤 이유로 GridView의 하위 클래스를 올바르게 캐스팅하는 데 어려움을 겪고 있습니다. 내 CustomGridView를 캐스팅 할 때 Caused by: java.lang.ClassCastException: android.widget.GridView cannot be cast to com.dobydigital.dobixchange.CustomGridView이 표시됩니다. 여기GridView를 하위 클래스로 분류 할 때 ClassCastException이 발생하는 이유는 무엇입니까?

import android.widget.GridView; 
public class CustomGridView extends GridView { 

FileBrowserFragment.java

//# Other stuff omitted for brevity 
private CustomGridView gridView; 
public class FileBrowserFragment extends Fragment { 
//# Stuff 
} 
//# ......... 
@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onActivityCreated(savedInstanceState); 
    //# This cast here throws the exception 
    gridView = (CustomGridView) getView().findViewById(R.id.grid_view); 

file_browser.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/root_node" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

<com.dobydigital.dobixchange.CustomGridView 
    android:id="@+id/grid_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:numColumns="3" 
    android:layout_weight="80" > 
    <!-- Preview: [email protected]/image_tile --> 
</com.dobydigital.dobixchange.CustomGridView> 



<Button 
    android:id="@+id/btn_confirm" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:text="Select this Directory" /> 

</LinearLayout> 

내가 무슨 일이 일어나고 있는지 알아낼 수 없습니다

CustomGridView.java 내 코드입니다. 전에 레이아웃을 서브 클래 싱하는 데 문제가 없었습니다.

+0

에서 잘못된 레이아웃을 부풀려? 또한 올바른 'R'파일을 가져 오시겠습니까? –

+0

사용자 정의 GridView를 일반 GridView로 변환 할 필요가 없습니다. 실제로 필요 없습니다. 사용자 정의 GridView로 무엇을하려합니까? –

+0

저는 Fragment 내부에서 getView()를 사용하여 Inflated 뷰에 대한 참조를 가져야합니다 (이 경우 루트 노드 인 LinearLayout 임). Fragment 클래스에는 간단한 "findViewById()"가 없습니다. –

답변

0

제거 : 당신은 실수로 & 리턴`의 getView()`은 무엇입니까 onCreateView() :

+0

도움 주셔서 감사합니다. =) –

0
gridView = (CustomGridView) findViewById(R.id.grid_view); 

질문의 의견부터의 getView()

+0

나는 이것이 조각 안에 있습니다. –

관련 문제