0

나는 android.R.layout.simple_list_item_1 대신 자신의 목록을 바꾸고 싶지만 다음 오류가 발생합니다. 06-15 18 : 28 : 29.604 : E/AndroidRuntime (3291 java.lang.ClassCastException : android.widget.RelativeLayout을 android.widget.TextViewatandroid.widget.ArrayAdapter.createViewFromResource로 캐스팅 할 수 없습니다. 관리 할 수 ​​없습니다 그것은이내 자신의 목록으로 android.R.layout.simple_list_item_1을 (를) 대체

,745 등이

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:paddingLeft="10dp" 
    android:paddingTop="10dp" 
    android:textColor="#FFFFFF" 
    android:background="@drawable/burger_bg_selector" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<View 
    android:id="@+id/view1" 
    android:layout_width="wrap_content" 
    android:layout_height="1dp" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView1" 
    android:background="@drawable/main_list_sep"/> 

내 자바 클래스 모습처럼 내 새 목록보기를 해결하기 위해

public class MenuFragment extends ListFragment { 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    setListAdapter(new ArrayAdapter<String>(getActivity(), 
      R.layout.burger_list, new String[] { " First", " Second", " Third", " Fourth", " Fifth", " Sixth"})); 
    getListView().setCacheColorHint(0); 
} 

@Override 
public void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    ((MenuActivity)getActivity()).getSlideoutHelper().close(); 
} 


    } 
+0

맞춤 목록보기를 사용하지 마십시오 – Raghunandan

+0

내 문제를 해결하는 방법이 레이아웃은 android.R.simple_list_item_1 대신 만들어야합니다. –

답변

5

텍스트를 배치해야하는 TextView 리소스의 ID도 배열 어댑터에 전달해야합니다. 이 줄을 바꾸기 : 당신은 ArrayAdapter와 개체에 텍스트 뷰 대신 RelativeLayout의 캐스팅 것 같은

setListAdapter(new ArrayAdapter<String>(getActivity(), 
      R.layout.burger_list, R.id.textView1, new String[] { " First", " Second", " Third", " Fourth", " Fifth", " Sixth"})); 
+0

고마워요. 제대로 작동했는데, textview의 이드를 감싸 줘야했는데, 잊어 버렸습니다. –

0

setListAdapter(new ArrayAdapter<String>(getActivity(), 
      R.layout.burger_list, new String[] { " First", " Second", " Third", " Fourth", " Fifth", " Sixth"})); 

보인다. 확실히 볼 수는 없지만 'R.layout.burger_list '는 RelativeLayout의 ID이고'textView1 '은 전송하려는 textview의 실제 ID입니다.