Заполнение gridview настраиваемой кнопкой android

Я хотел бы, чтобы представление сетки было заполнено настраиваемой кнопкой, которую я создал, проблема в том, что я не знаю, как работает этот адаптер.

Это то, чего я пытаюсь достичь

Заполнение gridview настраиваемой кнопкой android

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
91
1

Ответы 1

Я рекомендую вам сначала прочитать этот Тема для разработчиков Android. Вы должны использовать компонент RecyclerView для создания этого экрана, потому что он более оптимизирован и улучшен, чем обычный ListView. Прочитав эту тему для разработчиков Android, вы можете пройти через Сообщение блога. Вот пример того, как сделать такой экран, как на картинке. Но не забудьте получить полное представление о том, как работает этот RecyclerView.Adapter и как он связан с объектом RecyclerView.ViewHolder.

Нет. Это должна быть сетка, как таблица, а не список.

Prince Princes 24.07.2018 07:55

Вы можете добиться вида сетки с помощью RecyclerView. Вам нужно установить правильный LayoutManager для RecyclerView следующим образом: recyclerView.setLayoutManager (в девичестве GridLayoutManager (this, 3)) 3 число - это количество столбцов. Проверьте сообщение в блоге в конце.

BVantur 24.07.2018 07:59

Другие вопросы по теме