ERROR/AndroidRuntime(281): java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
因此,我进行了大量的研究,并找到了许多可能的原因和解决方法。但是没有一种方法能够改变现状。我的适配器代码目前如下:
public class WeatherAdapter extends BaseAdapter {
private Context context;
private List<Weather> weatherList;
public WeatherAdapter(Context context, int rowResID,
List<Weather> weatherList ) {
this.context = context;
this.weatherList = weatherList;
}
public int getCount() {
return weatherList.size();
}
public Object getItem(int position) {
return weatherList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
Weather weather = weatherList.get(position);
//LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.weather_row, null, true);
TextView cityControl = (TextView)v.findViewById( R.id.city );
TextView temperatureControl = (TextView)v.findViewById( R.id.temperature );
ImageView skyControl = (ImageView)v.findViewById( R.id.sky );
return v;
}
}
我已经尝试了获取inflater的注释方式和当前未注释的方式。我尝试将“parent”传递给inflate以及null,并传递“true”,“false”和完全省略最后一个参数。它们都没有起作用,到目前为止我找到的所有示例都来自于2008年,我感觉有点过时。
如果有人能帮忙解决这个问题,我会很感激。
AdapterView
时,您希望视图独立于父级,getView()
会为您处理将其附加到父级的工作。 - Austyn MahoneygetView()
会处理它,因为你是编写它的人,我更愿意说 调用getView()
的任何东西(换句话说,框架)会负责附加由getView()
返回的视图。 - Joffrey