Android: создание фрагмента с переменными элементами

Мне нужно динамически создать вертикальный линейный макет внутри вертикальной прокрутки, когда я нажимаю на кнопку в главном действии. Линейный макет должен иметь столько строк, сколько указано в тексте редактирования основного действия.

Теперь я знаю, как создать фрагмент с линейной разметкой и прокруткой при нажатии кнопки, но я не знаю, как заполнить эту линейную разметку кнопками в зависимости от значения редактируемого текста из основного действия.

Графическое объяснение:

Введите описание изображения здесь

У меня есть этот код:

public void onAdd(View view) { // This is the method called when button is clicked
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    BlankFragment fragment = new BlankFragment();
    transaction.add(R.id.table2,fragment);
    transaction.commit();
}

И это xml-код фрагмента:

<LinearLayout 

android_layout_width="match_parent"
android_layout_height="match_parent"
android_orientation="vertical"
tools_context="com.example.xxxxx.yyyyy.BlankFragment">

    <ScrollView
        android_id="@+id/sv1"
        android_layout_width="fill_parent"
        android_layout_height="wrap_content">
        <LinearLayout
            android_id="@+id/ll6"
            android_layout_width="wrap_content"
            android_layout_height="wrap_content"
            android_orientation="vertical">

            <!-- Buttons go here -->

        </LinearLayout>
    </ScrollView>

1 ответ

  1. Вместо того чтобы вручную добавлять представления внутри LinearLayout, используйте RecyclerView или ListView и создайте простой адаптер, который отображает представления. После этого все, что вам нужно сделать, это обновить элементы адаптера на основе ввода пользователя из EditText.