ListView有3列 - Android

时间:2015-01-05 16:07:30

标签: android android-listview baseadapter

我想用3列创建ListView(所有3列都相同)。所以一列是ImageView。为了填充ListView我有一个带图像的数组。

设计应该是这样的: Layout

要填充ListView,我需要自定义适配器和自定义布局。布局只有3个id-s图像: ivImage1ivImage2ivImage3

我的自定义适配器:

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

我该怎么做,或者还有其他一些解决这个问题的方法......

1 个答案:

答案 0 :(得分:1)

您需要使用GridViewRecyclerView。这两个组件都允许您创建多个列,这正是您所需要的。我建议使用RecyclerView,这是未来支持的控件。

标准ListView仅限于一列。