Программно добавить кнопку на основе существующего макета - PullRequest
1 голос
/ 03 апреля 2019

Согласно этой записи , можно программно добавить кнопку в 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);

Спасибо!;)

1 Ответ

1 голос
/ 04 апреля 2019

См. этот похожий вопрос с ответом .

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

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