Слушатель щелчка для нескольких кнопок, которые я создал динамически Android Studio - PullRequest
1 голос
/ 16 апреля 2020

Хорошо, я делаю приложение android, и у меня есть список целей, скажем, чтобы было легко объяснить. Цель состоит из строки. Эти данные будут поступать из базы данных, поэтому в будущем длина списка может быть немного больше или немного короче. Каждая цель помещается в текст кнопки.

Я сделал это l oop, чтобы создавать кнопки во время выполнения из-за изменения длины списка в зависимости от того, что происходило раньше, и все это прекрасно работает. , я могу создать кнопки, и они размещены там, где я хочу et c. Это код, который я использовал для этого.

    for (int i = 0; i < goals.size(); i++){
        buttons[i] = new Button(this.getContext());
        buttons[i].setLayoutParams(params);
        buttons[i].setPadding(0,150,0,150);
        buttons[i].setGravity(Gravity.CENTER);
        buttons[i].setText(goals.get(i));
        buttons[i].setBackgroundResource(R.drawable.btn_back);
        buttons[i].setTextSize(30);
        buttons[i].setTransformationMethod(null);
        linear.addView(buttons[i]);
    }

Теперь моя проблема в том, что я хочу, чтобы нажатие каждой кнопки делало немного разные вещи - в зависимости от цели ie, текста кнопки. Я действительно борюсь с настройкой события click, чтобы разные кнопки делали разные вещи, даже если я создал их все динамически.

Я могу дать более подробную информацию о настройке, в которой я нахожусь в студии android, но я чувствую, что достаточно подробно рассмотрел свою проблему.

Я ценю любую помощь.

1 Ответ

0 голосов
/ 16 апреля 2020

Мое лучшее предположение состоит в том, что если вы уже знаете, какой должна быть функция каждой кнопки в соответствии с текстом, вы не могли бы просто взять текст кнопки и затем использовать его в переключателе (или что-то еще), чтобы получить конкретную информацию? c функциональность, как:

buttons[i].setOnClickListener(new View.OnClickListener(){

   @Override
   public void onClick(View view){

       //Put whatever is common between buttons outside of the switch

       switch(((Button)view).getText().toString()){

       //And then just assign a case for whatever functionality you need specifically for each goal

       }

   }


});
...