Как динамически добавлять TextViews в мой макет на основе содержимого файла JSON?

Я новичок в разработке Android. У меня есть файл JSON, который содержит несколько объектов, как добавить новый TextView в свой ScrollView для каждого объекта в файле JSON? Каждый TextView будет хранить данные, содержащиеся в объекте JSON. Единственный способ, которым я знаю в настоящее время добавлять представления к макету, – это определить их в XML-файле макета активности, но это не позволяет мне автоматически генерировать их, я должен создать их вручную и определить их вручную ,

благодаря

EDIT: связанный дубликат не имеет ответов, однако здесь был предоставлен ответ.

@Lewiky. Вот код .java-файла для динамического добавления TextView в ScrollView. Вы можете заменить цикл в соответствии с длиной ваших json-объектов. Также отправьте код файла макета xml для справки

 public class Scrollview extends AppCompatActivity { ScrollView scrollview; LinearLayout linearLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scrollview); scrollview = (ScrollView) findViewById(R.id.scrollView); linearLayout=(LinearLayout)findViewById(R.id.scrllinear); TextView textView; LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); for (int i = 0; i < 5; i++) { textView = new TextView(this); textView.setText("I=" + i); linearLayout.addView(textView, lp); } } } 

XML-код

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relative" android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:id="@+id/scrllinear" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </LinearLayout> </ScrollView> </RelativeLayout> 

Надеюсь, это поможет, Happy Coding. 🙂

Предположим, что у вас есть activity_layout.xml и SomeActivity и оба имеют отношение wihch setContentView(R.layout.activity_layout) метод, вызываемый в переопределенном методе onCreate , например:

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_layout) } 

Теперь вам нужно ViewGroup некоторую ViewGroup например: LinearLayout , ListView (лучше). Используя метод findViewById(R.id.some_group_view) и findViewById(R.id.some_group_view) с тем же классом.

С помощью instanced переменных (предположим, что вы используете ListView ) назовите объект Json и извлеките необходимую информацию в объект Iterator и передайте данные в ArrayAdapter .

См. Руководства разработчика Android для приложения. У них действительно полезная документация.

Главная страница разработчика Android
Руководства для разработчиков Android
Android-разработчик ListView

Intereting Posts
Несогласованность получения данных из базы данных Firebase с тем же классом данных Котлин не поднимает идентификаторы ресурсов Как добавить TeaVM в мой существующий проект libGDX? Drone.getAttribute (AttributeType.Signal) возвращает недействительный сигнал предупреждение о прерывании kotlin, устаревшее для android Можно ли переместить мои файлы Kotlin в отдельный пакет (тип источника) в Android Studio? Захват и сохранение изображения с помощью Kotlin в Android Studio Обработчик ссылки Clickable в TextView Как десериализовать унаследованные классы данных Kotlin с помощью Gson Как создать параметр конструктора типа «Единица» Kotlin с параметром одного типа с kotlinpoet? Многие небольшие модули или несколько больших модулей для лучшей производительности? Создание карты со значениями, содержащими дженерики Как найти методы с аннотацией в классе? IllegalStateException в контексте Kotlin не должно быть null Аннотатор Android Studio StyleRes дает предупреждение о Kotlin var