以前は PHP と js に取り組んでいましたが、最近は Android の listview に取り組んでいます。ただし、listview 用のカスタム アダプタの作成で問題が発生しました。
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO
if (arg1 == null) {
arg1 = myInflater.inflate(R.layout.grid, arg2, false);
}
TextView name = (TextView) arg1.findViewById(R.id.text1);
TextView desc = (TextView) arg1.findViewById(R.id.text2);
ImageView image = (ImageView) arg1.findViewById(R.id.image1);
if (arg0 < images.length) {
image.setImageResource(images[arg0]);
}
name.setText(names[arg0]);
desc.setText(description[arg0]);
return arg1;
}
問題は、リストビュー グリッドに渡すコンテンツの配列が 3 つあることです。最初の 2 つの配列には 10 個の要素があり、最後の配列には 5 個しかありません。というわけで、最後の方は境界外です。5 を超えているかどうかをチェックする条件を追加したのですが、 行によっては args0 が増えていないようです?
if (arg0 < images.length) {
image.setImageResource(images[arg0]);
}
最初の 5 行と他のいくつかの行にも画像が設定されていますが、その理由と修正方法を教えてください。ありがとう