用自定义按钮android填充gridview

时间:2018-07-23 17:17:36

标签: java android gridview

我想用我创建的自定义按钮填充网格视图,问题是我不知道此适配器如何工作。

这就是我要实现的目标

enter image description here

这是我的自定义button.java

    public class Items extends Button {
        private final static int WIDTH_PADDING = 10;
        private final static int HEIGHT_PADDING = 10;
        private final String label;
        private final String name;
        private final double price;

        public Items(Context context, String name, double price) {
            super(context);
            this.name = name;
            this.price = price;
            this.label = name;

            setHeight(100);
            setWidth(100);
            setFocusable(true);
            setBackgroundColor(Color.parseColor("#eef771"));
            setClickable(true);
        }

        protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {
            super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
            if(gainFocus == true) {
                this.setBackgroundColor(Color.parseColor("#ced662"));
            } else {
                this.setBackgroundColor(Color.parseColor("#eef771"));
            }

        }

        protected void onDraw(Canvas canvas) {
            Paint textPaint = new Paint();
            textPaint.setColor(Color.parseColor("#f4426e"));
            canvas.drawText(label + " (P" + price + ")", (WIDTH_PADDING / 2), (HEIG

HT_PADDING / 2,  textPaint);
    }
}

我的适配器仍然看起来像这样:

public class ItemsAdapter extends BaseAdapter {
    private Context context;

    public ItemsAdapter(Context context) {
        this.context = context;
    }

    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        return null;
    }
}

我的问题:我想随时可以向适配器添加自定义按钮,我在这里使用arrayList吗?如何返回该arrayList以便填充gridView?

我是android的新手,所以我不知道这些东西是如何工作的。预先感谢。

1 个答案:

答案 0 :(得分:0)

我建议您先阅读此Android developer topic。您应该使用RecyclerView组件来创建此屏幕,因为它比常规的ListView更加优化和完善。阅读此Android开发人员主题后,您可以阅读此blog post。有一个示例,说明如何在图片中显示这种屏幕。但是请确保完全了解此RecyclerView.Adapter的工作方式以及与RecyclerView.ViewHolder对象的关系。