用我自己的列表替换android.R.layout.simple_list_item_1
我想替换我自己的列表而不是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 我解决不了我的新单子是这样的用我自己的列表替换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
<?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你的权利我忘记了