Как использовать кнопки в ArrayList - PullRequest
0 голосов
/ 28 марта 2020

Я создал список ArrayAdapter и Array для своего рода «товара», и теперь я хочу его, чтобы каждый раз, когда я нажимал кнопку «+», он увеличивал количество продуктов, которые я хочу / нажимаю. Я очень плохо знаком с java и android Соз.

So I wanna add this

int quantity = 1;

    /**
     * This method displays the given quantity value on the screen.
     */
    private void displayQuantity(int number) {
        TextView quantityTextView = findViewById(R.id.quantity_text_view);
        quantityTextView.setText(number);
    }


    /** this method is used to increase quantity*/
    public void add (View view) {
        quantity = quantity + 1;

        Log.v("merch","Added +1");

        displayQuantity(quantity);
    }

с этим:

public class merchandise extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_view);

        ArrayList<Merch> merchArrayList = new ArrayList<Merch>();
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT1"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT2"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT3"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT4"));

        merchAdapter merchAdapter =  new merchAdapter(this,merchArrayList);
        GridView merchListView = (GridView) findViewById(R.id.merch_grid_view);
        merchListView.setAdapter(merchAdapter);
    }

То, что я пытался: 1) создал новый класс и просто назвал его «merch_buttons», но я получил сообщение об ошибке «метод должен быть в родительском контексте для представления», и я не понимаю этого. 2) добавил его при создании, но понял, что вы не можете добавить метод к методу 3) добавил его ПОСЛЕ метода создания, но он выдал ошибку о том, что «java .lang.IllegalStateException: не удалось выполнить метод для android: OnClick».

4) Пытался создать очень простой новый класс и xml с одной кнопкой и представлением текста, но все равно получил ошибку в 3) .... (также задавал вопрос об этом).

оооооооо, что делать.

1 Ответ

0 голосов
/ 28 марта 2020

Инициализируйте каждый виджет пользовательского интерфейса после setContentView в onCreate (); Чтобы дать вам пример, например:

TextView quantityTextView = findViewById(R.id.quantity_text_view);

Если вы хотите получить к нему глобальный доступ,

public class merchandise extends AppCompatActivity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_view);

        textView = findViewById(R.id.quantity_text_view);

        ArrayList<Merch> merchArrayList = new ArrayList<Merch>();
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT1"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT2"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT3"));
        merchArrayList.add(new Merch(R.drawable.icon,"PRODUCT4"));

        merchAdapter merchAdapter =  new merchAdapter(this,merchArrayList);
        GridView merchListView = (GridView) findViewById(R.id.merch_grid_view);
        merchListView.setAdapter(merchAdapter);
    }

Сюда входит кнопка, которую вы пытаетесь использовать onClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...