我想用我创建的自定义按钮填充网格视图,问题是我不知道此适配器如何工作。
这就是我要实现的目标
这是我的自定义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的新手,所以我不知道这些东西是如何工作的。预先感谢。
答案 0 :(得分:0)
我建议您先阅读此Android developer topic。您应该使用RecyclerView组件来创建此屏幕,因为它比常规的ListView更加优化和完善。阅读此Android开发人员主题后,您可以阅读此blog post。有一个示例,说明如何在图片中显示这种屏幕。但是请确保完全了解此RecyclerView.Adapter的工作方式以及与RecyclerView.ViewHolder对象的关系。