Я хотел бы, чтобы представление сетки было заполнено настраиваемой кнопкой, которую я создал, проблема в том, что я не знаю, как работает этот адаптер.
Это то, чего я пытаюсь достичь
Это моя пользовательская кнопка. 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, поэтому не знаю, как эти вещи работают. Заранее спасибо.




Я рекомендую вам сначала прочитать этот Тема для разработчиков Android. Вы должны использовать компонент RecyclerView для создания этого экрана, потому что он более оптимизирован и улучшен, чем обычный ListView. Прочитав эту тему для разработчиков Android, вы можете пройти через Сообщение блога. Вот пример того, как сделать такой экран, как на картинке. Но не забудьте получить полное представление о том, как работает этот RecyclerView.Adapter и как он связан с объектом RecyclerView.ViewHolder.
Вы можете добиться вида сетки с помощью RecyclerView. Вам нужно установить правильный LayoutManager для RecyclerView следующим образом: recyclerView.setLayoutManager (в девичестве GridLayoutManager (this, 3)) 3 число - это количество столбцов. Проверьте сообщение в блоге в конце.
Нет. Это должна быть сетка, как таблица, а не список.