그것은 이상합니다. 어떤 이유로 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 내 코드입니다. 전에 레이아웃을 서브 클래 싱하는 데 문제가 없었습니다.
에서 잘못된 레이아웃을 부풀려? 또한 올바른 'R'파일을 가져 오시겠습니까? –
사용자 정의 GridView를 일반 GridView로 변환 할 필요가 없습니다. 실제로 필요 없습니다. 사용자 정의 GridView로 무엇을하려합니까? –
저는 Fragment 내부에서 getView()를 사용하여 Inflated 뷰에 대한 참조를 가져야합니다 (이 경우 루트 노드 인 LinearLayout 임). Fragment 클래스에는 간단한 "findViewById()"가 없습니다. –