Я изо всех сил пытался найти подходящий ответ о том, как добавить компоненты к макету во фрагменте во время выполнения в Android Studio.
В частности:
У меня есть класс A, который загружаети анализирует файл XML.Фрагмент B создает экземпляр этого класса A и должен отображать эти загруженные элементы.(пока просто текстовое представление)
Это файл XML, в котором должен отображаться textView.Элементы должны отображаться в двух столбцах.Я знаю, как создать макет в XML-файле, но не знаю, как это сделать программно.Я также читал кое-что о инфлатерах, но я не знаю, подходит ли это для этой цели.
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:paddingTop="10dp">
<TextView
android:id="@+id/columnItem"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_weight=".5"
android:background="#c5c5c5"
android:gravity="center"
android:text="@string/CategoryLeft" />
</TableRow>
</ScrollView>
</TableLayout>
Итак, вот код фрагмента B, который в настоящее время просто изменяет текст двух существующих текстовых представлений, который работает просто отлично.
public void onStart() {
super.onStart();
ArrayList<String> categories = new ArrayList<>();
XMLHandler getXML = new XMLHandler();
getXML.execute();
categories = getXML.getCategories();
Iterator<String> it = categories.iterator();
while (it.hasNext()) {
System.out.println("Data is " + it.next());
columnItem.setText(it.next());
}
}
Цель состоит в том, чтобы добавить новый TextView для каждой итерации цикла while в родительский макет.Это TextView должно отображать содержимое it.next ().
Заранее спасибо, и дайте мне знать, если вам нужна дополнительная информация.