ArrayAdapter в android для создания простого списка

Я попытался создать Activity в Android, эта активность содержит только ListView ничего.

Как я знаю, чтобы заполнить список, нам нужно использовать ArrayAdapter .

Итак, чтобы понять ArrayAdapter, я прочитал следующую ссылку:

http://developer.android.com/reference/android/widget/ArrayAdapter.html

Но все же я не могу понять это ясно!

Одно из самых больших сомнений в том, почему конструктору нужен идентификатор ресурса TextView то время как у моей деятельности нет TextViews, что мне нужно было бы дать?

Я не говорю, что это единственный конструктор, но я пытаюсь объяснить, что я не могу это понять.

Чтобы создать простой список, я также ссылался на следующую ссылку:

Простой ListView с использованием примера ArrayAdapter.

Но опять же мое главное сомнение в том, зачем ему нужен идентификатор ресурса TextView?

Если кто-нибудь может объяснить это примером, это будет очень полезно.

РЕДАКТИРОВАТЬ:

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 

Solutions Collecting From Web of "ArrayAdapter в android для создания простого списка"

ArrayAdapter использует TextView для отображения каждого элемента внутри него. За кулисами он использует метод toString() для каждого объекта, который он удерживает, и отображает это в TextView. ArrayAdapter имеет несколько конструкторов, которые могут быть использованы, и тот, который вы использовали в вашем примере:

 ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) 

По умолчанию ArrayAdapter использует TextView по умолчанию для отображения каждого элемента. Но если вы хотите, вы можете создать свой собственный TextView и реализовать любой сложный дизайн, который вам нужен, расширяя класс TextView. Это должно было бы зайти в макет для вашего использования. Вы можете ссылаться на это в поле textViewResourceId, чтобы привязать объекты к этому представлению, а не по умолчанию.

Для вашего использования я бы предложил использовать конструктор:

 ArrayAdapter(Context context, int resource, T[] objects). 

В вашем случае это будет:

 ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values) 

И все должно быть хорошо. Это свяжет каждую строку со стандартным дисплеем TextView – простым и простым белым фоном.

Поэтому, чтобы ответить на ваш вопрос, вам не нужно использовать textViewResourceId.

Но опять же основное сомнение в том, зачем нужен идентификатор ресурса TextView?

Посмотрите на конструктор и параметры.

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

Добавлено в API уровня 1 Конструктор

параметры

context Текущий контекст.

resource Идентификатор ресурса для файла макета, содержащий макет для использования при создании представлений.

textViewResourceId Идентификатор TextView в ресурсе макета для заполнения объектов Объекты, представляемые в ListView .

android.R.id.text1 относится к идентификатору текста в ресурсе android. Поэтому вам не нужно иметь в своей деятельности.

Вот полный список

http://developer.android.com/reference/android/R.id.html

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, values); 

this относится к контексту активности

Android.R.layout.simple_list_item_1 simple_list_item_1 – это макет в android.R.layout.

android.R.id.text1 относится к идентификатору ресурса android.

values – это строковый массив из указанной вами ссылки.

http://developer.android.com/reference/android/R.layout.html

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

Я также новичок в Android, поэтому я могу ошибаться. Но согласно моему пониманию, используя это для создания списка, вторым аргументом является макет элементов списка. Макет состоит из множества видов (вид изображения, текстовое представление и т. Д.). С третьим аргументом вы указываете, в каком представлении или текстовом режиме вы хотите, чтобы текст отображался.

 public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects) 

Здесь ресурс означает «идентификатор» макета, который вы используете при создании экземпляра представления.

Теперь этот макет имеет много дочерних представлений со своими идентификаторами. Итак, textViewResourceId сообщает, какое дочернее представление нужно заполнить данными.

Вам не нужно использовать id для textview. Вы можете узнать больше от android arrayadapter . В приведенном ниже коде инициализируется массив.

 ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.single_item, eatables); 

Идентификатор ресурса TextView, который ему нужен, предназначен для файла макета TextView, поэтому он не будет находиться в одном и том же действии.

Вы можете создать его, выбрав File> New> XML> XML Layout File и введите тип виджетов, который является «TextView» в поле корневого тега.

Источник: https://www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/