当我使用ListView并编写适配器时,扩展BaseAdapter会出现此错误。而且我确信我没有在ListView标签中添加任何内容。
这是我的main_layout.xml
<LinearLayout
android:id="@+id/layout_map"
android:layout_width="match_parent"
android:layout_height="1200px"
android:layout_below="@+id/toolbar"
android:orientation="horizontal">
<org.osmdroid.views.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layout_lv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/layout_map"
android:clickable="true"
android:orientation="vertical">
<ListView
android:id="@+id/lv_stops"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:clickable="true"></ListView>
</LinearLayout>
这是我的list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/stopImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="5"
android:layout_width="0dp"
android:orientation="vertical"
android:layout_height="fill_parent">
<TextView
android:id="@+id/stop_name_item"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_height="fill_parent" />
<TextView
android:id="@+id/stop_info_item"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_height="fill_parent" />
</LinearLayout>
</LinearLayout>
</ListView>
这是我的适配器
public class MainActivityStopAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<Stop> stopList = null;
public MainActivityStopAdapter(Context mContext, ArrayList<Stop> mList) {
this.mContext = mContext;
this.stopList = mList;
}
public int getCount() {
return stopList.size();
}
public Object getItem(int pos){
return stopList.get(pos);
}
public long getItemId(int pos){
return pos;
}
public View getView(final int pos, View convertView, ViewGroup p){
final ViewHolder viewHolder;
if(convertView == null){
convertView = LayoutInflater.from(mContext).inflate(R.layout.stop_list_item,null);
viewHolder = new ViewHolder();
viewHolder.stopImage = (ImageView)convertView.findViewById(R.id.stopImage);
viewHolder.stopName = (TextView)convertView.findViewById(R.id.stop_name_item);
viewHolder.stopInfo = (TextView)convertView.findViewById(R.id.stop_info_item);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.stopImage.setImageResource(R.drawable.ic_bus_stop);
viewHolder.stopName.setText(stopList.get(pos).getName());
viewHolder.stopInfo.setText(stopList.get(pos).getId());
return convertView;
}
public static class ViewHolder{
public ImageView stopImage;
public TextView stopName;
public TextView stopInfo;
}
}
答案 0 :(得分:2)
删除ListView
布局中的list_item
根元素。子LinearLayout
足以作为布局中的根元素。
ListView
不应该在XML中声明子项,并且在ListView
行项目中放置ListView
无论如何都没有意义。