Программно добавить кнопку на основе существующего макета

Согласно эта почта, можно программно добавить кнопку в java.

Я хотел бы построить свои кнопки на основе макета. Является ли это возможным ?

Например,

<!-- btn.xml-->
<Button
    android:id = "@+id/button_id"
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:layout_marginLeft = "8dp"
    android:layout_marginTop = "4dp"
    android:layout_marginRight = "8dp"
    android:layout_marginBottom = "4dp"
    android:minHeight = "60dp"
    android:onClick = "myFunction"
    android:textAllCaps = "false" />

В моем Java-коде я создаю кнопки над String list следующим образом:

final LinearLayout layout = findViewById(R.id.my_layout);
for(String label : stringList){
    Log.d("BTN_ITERATION", "for label : " + label);
    Button btn = new Button(getApplicationContext());
    btn.setText(label);
    layout.addView(btn);
}

Для каждой итерации кнопки я хотел бы установить макет btn.xml.

Я думал о чем-то подобном, но я не знаю:

button = (button) View.inflate(this, R.layout.btn, null);
layout.addView(button);

Спасибо ! ;)

пожалуйста, попробуйте ваше предложение, и если вы ошибаетесь, вы можете задать вопрос с большей прецессией. Спасибо

Garci 03.04.2019 22:36
2
1
152
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

См. этот аналогичный вопрос с ответом.

Попробуй это:

Button btn = (Button) inflater.inflate(R.layout.btn, layout, false);

Ваша ссылка очень полезна, она решила мою "проблему". Другой замечательный документ здесь ! Спасибо ! ;)

super-sk 04.04.2019 21:09

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