我正在尝试在ListFragment中创建一个ListView。我的列表是自定义的,因此它是使用适配器创建的。但是aplication很疯狂并且给我这个错误你的内容必须有一个listview,其id属性是'android.r.id.list 这是ListFragment类:
public static class DummySectionFragment extends ListFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_section_dummy, container, false);
Vector<String> names=new Vector<String>();
names.add("Alex");
names.add("Julia");
setListAdapter(new MyAdapter(getActivity(), names));
return rootView;
}
}
这是MyAdapter类:
public class MiAdaptador extends BaseAdapter {
private final Activity activ;
private final Vector<String> list;
public MiAdaptador(Activity activ, Vector<String> list) {
super();
this.actividad = activ;
this.list = list;
}
public View getView(int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater = activ.getLayoutInflater();
View view = inflater.inflate(R.layout.adapter_view, null, true);
TextView textView =(TextView)view.findViewById(R.id.titulo);
textView.setText(lista.elementAt(position));
return view;
}
}
我的fragment_section_dummy布局:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name list"
android:gravity="center"
android:layout_margin="10px"
android:textSize="10pt"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1">
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false" />
<TextView
android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
</LinearLayout>
我的adapter_view布局:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight">
<TextView android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:singleLine="true"
android:text="title"
android:gravity="center"/>
<TextView android:id="@+id/subtitle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Other text"
android:layout_below="@id/title"
android:layout_alignParentBottom="true"
android:gravity="center"/>
</RelativeLayout>
我怎么能解决这个问题?
答案 0 :(得分:0)
我开始认为您应该将视图附加到根视图中。
将通胀改为:
查看rootView = inflater.inflate(R.layout.fragment_section_dummy,container,true);
另一种选择可能是仅使用onCreateView()方法来扩充主布局。并使用onStart()方法设置列表适配器。这样可以确保Android了解您的自定义布局。
发布完整的堆栈跟踪有助于解决您的问题。
答案 1 :(得分:0)
还有其他类扩展到ListFrament(如DummySectionFragment),但这些并没有膨胀具有ListView的布局。所以我不得不改变那里的父(Fragment而不是ListFragment),它已经解决了。 谢谢你的回答