リストビューに 1 行あたり 3 つのテキストビューを設定するカスタム アダプターの作成を検討しています。これを行うためのコード例をかなり見つけましたが、最も良いと思われるコードはhttp://www.anddev.org/custom_widget_adapters-t1796.htmlにありました。
最新の Android SDK でいくつかのコンパイラの問題を修正するためにいくつかのマイナーな調整を行った後、例外を取得するためだけに実行しました。
エラー/AndroidRuntime(281): java.lang.UnsupportedOperationException: addView(View, LayoutParams) は 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;
}
}
そのため、インフレータを取得するコメントアウトされた方法と、現在コメントアウトされていない方法を試しました。null だけでなく "parent" を inflate に渡し、"true"、"false" を渡し、最後のパラメーターを完全に省略しようとしました。それらのどれも機能していません。これまでに見つけたすべての例は 2008 年のもので、少し時代遅れだと感じています。
誰かがこれを手伝ってくれるなら、私は問題を解決したいと思っています.