передача повторяющихся атрибутов программно сгенерированных кнопок - PullRequest
0 голосов
/ 02 мая 2019

Я генерирую много кнопок, используя до 30 циклов for, и почти весь код для них одинаков.Мне было интересно, можно ли каким-то образом получить мои атрибуты "button.set" вне цикла "for", чтобы передать его и другим циклам.

   for (int i = 1; i < 4; i++) {

        Button button = new Button(this);
        button.setId(i);
        button.setLayoutParams(params);
        button.setTextColor(Color.parseColor("#ffffff"));
        button.setAllCaps(false);
        button.setTextScaleX(0.92f);
        button.setPadding(20, 20, 20, 20);
        button.setBackgroundColor(Color.parseColor("#70553B"));
        button.getBackground().setAlpha(20);
        button.setOnClickListener(this);
        button.setMaxLines(1);
        button.setGravity(Gravity.CENTER);
        buttonHolder[i] = button;
        side_a.addView(button);
    }

1 Ответ

0 голосов
/ 02 мая 2019

Вы можете создать функцию, которая берет кнопку и применяет к ней все настройки:

   public void setButtonParams(Button button){
        button.setTextColor(Color.parseColor("#ffffff"));
        button.setAllCaps(false);
        button.setTextScaleX(0.92f);
        button.setPadding(20, 20, 20, 20);
        button.setBackgroundColor(Color.parseColor("#70553B"));
        button.getBackground().setAlpha(20);

        button.setMaxLines(1);
        button.setGravity(Gravity.CENTER);
   }
   for (int i = 1; i < 4; i++) {

        Button button = new Button(this);
        button.setId(i);
        button.setLayoutParams(params);
        setButtonParams(button);
        button.setOnClickListener(this);
        buttonHolder[i] = button;
        side_a.addView(button);
    }

Если вы также хотите установить id и другие значения, которые зависят от контекста, вы можете добавить их в качестве параметровк функции setButtonParams.

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