用我自己的列表替换android.R.layout.simple_list_item_1

用我自己的列表替换android.R.layout.simple_list_item_1,android,android-layout,listadapter,android-listfragment,Android,Android Layout,Listadapter,Android Listfragment,我想替换我自己的列表而不是android.R.layout.simple\u list\u item\u 1,但我收到以下错误06-15 18:28:29.604:E/AndroidRuntime(3291):java.lang.IllegalStateException:ArrayAdapter要求资源ID为TextView,原因是:java.lang.ClassCastException:android.widget.RelativeLayout不能强制转换为android.widget.T

我想替换我自己的列表而不是android.R.layout.simple\u list\u item\u 1,但我收到以下错误06-15 18:28:29.604:E/AndroidRuntime(3291):java.lang.IllegalStateException:ArrayAdapter要求资源ID为TextView,原因是:java.lang.ClassCastException:android.widget.RelativeLayout不能强制转换为android.widget.TextViewatandroid.widget.ArrayAdapter.createViewFromResource 我解决不了我的新单子是这样的

<?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();
}


   }

我的java类是这样的

<?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();
}


   }
公共类MenuFragment扩展了ListFragment{
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.burger_list,新字符串[]{“第一”、“第二”、“第三”、“第四”、“第五”、“第六”});
getListView().setCacheColorHint(0);
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
((MenuActivity)getActivity()).GetSlideOutThelper().close();
}
}

您还应该将文本应该放置的TextView资源的id传递给数组适配器。替换此行:

setListAdapter(new ArrayAdapter<String>(getActivity(),
            R.layout.burger_list, new String[] { " First",  " Second", " Third", " Fourth", " Fifth", " Sixth"}));
setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.burger_list,新字符串[]{“第一”、“第二”、“第三”、“第四”、“第五”、“第六”});

setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.burger_list,R.id.textView1,新字符串[]{“第一”、“第二”、“第三”、“第四”、“第五”、“第六”});

您还应该将文本应该放置的TextView资源的id传递给数组适配器。替换此行:

setListAdapter(new ArrayAdapter<String>(getActivity(),
            R.layout.burger_list, new String[] { " First",  " Second", " Third", " Fourth", " Fifth", " Sixth"}));
setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.burger_list,新字符串[]{“第一”、“第二”、“第三”、“第四”、“第五”、“第六”});

setListAdapter(新的ArrayAdapter(getActivity()),
R.layout.burger_list,R.id.textView1,新字符串[]{“第一”、“第二”、“第三”、“第四”、“第五”、“第六”});

看起来您正在将RelativeLayout而不是TextView强制转换为ArrayAdapter对象。看不太清楚,但似乎“R.layout.burger_list”是RelativeLayout的id,而“textView1”是要转换的textview的实际id。

看起来您正在将RelativeLayout而不是textview转换为ArrayAdapter对象。看不太清楚,但似乎“R.layout.burger_list”是相对人的id,虽然“textView1”是您要转换的textview的实际id。

为什么不使用自定义ListView如何解决我的问题我只需要我创建的这个布局而不是android.R.simple\u list\u item\u 1?为什么不使用自定义ListView如何解决我的问题我只需要我创建的这个布局而不是android.R.simple\u list\u item\u 1android.R.simple\u list\u item\u 1?非常感谢它工作正常我需要用它包装textview的id你的权利我忘记了Hanks很多它工作正常我需要用它包装textview的id你的权利我忘记了