我想用3列创建ListView
(所有3列都相同)。所以一列是ImageView
。为了填充ListView
我有一个带图像的数组。
设计应该是这样的:
要填充ListView,我需要自定义适配器和自定义布局。布局只有3个id-s图像:
ivImage1
,ivImage2
,ivImage3
我的自定义适配器:
public class Adapter extends BaseAdapter {
private int[] gallery = {
R.drawable.cat_321_sofa,
R.drawable.cat_corner_sofa,
R.drawable.cat_beds,
R.drawable.cat_arm_chairs,
R.drawable.cat_puff,
R.drawable.cat_coffe_table,
R.drawable.cat_day_night,
};
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.one_gallery_layout, parent, false);
} else {
row = convertView;
}
ImageView ivImage1 = (ImageView) row.findViewById(R.id.ivImage1);
ImageView ivImage2 = (ImageView) row.findViewById(R.id.ivImage2);
ImageView ivImage3 = (ImageView) row.findViewById(R.id.ivImage3);
ivImage1.setImageResource(); ??????
ivImage2.setImageResource(); ??????
ivImage3.setImageResource(); ??????
return row;
}
@Override
public int getCount() {
return ????????????
}
@Override
public Object getItem(int position) {
return 0;
}
@Override
public long getItemId(int position) {
return 0;
}
}
所以问题是ListView
的大小,getCount()的返回值; ,并将图像放在每个ImageView
我该怎么做,或者还有其他一些解决这个问题的方法......
答案 0 :(得分:1)
您需要使用GridView或RecyclerView。这两个组件都允许您创建多个列,这正是您所需要的。我建议使用RecyclerView,这是未来支持的控件。
标准ListView仅限于一列。