Мое Android
приложение должно заполнить, ListView
используя данные из ArrayList
.
У меня проблемы с этим. Может кто-нибудь помочь мне с кодом?
Вам нужно сделать это с помощью, ArrayAdapter
который адаптирует ваш ArrayList (или любую другую коллекцию) к вашим элементам в вашем макете (ListView, Spinner и т. Д.).
Вот что говорится в руководстве разработчика Android :
Объект,
ListAdapter
который управляетListView
массивом произвольных объектов. По умолчанию этот класс ожидает, что предоставленный идентификатор ресурса ссылается на одинTextView
. Если вы хотите использовать более сложный макет, используйте конструкторы, которые также принимают идентификатор поля. Этот идентификатор поля должен ссылатьсяTextView
на более крупный ресурс макета.Как бы то ни было
TextView
, он будет заполненtoString()
каждым объектом в массиве. Вы можете добавлять списки или массивы настраиваемых объектов. ПереопределитеtoString()
метод ваших объектов, чтобы определить, какой текст будет отображаться для элемента в списке.Чтобы использовать что-то иное, кроме
TextViews
отображения массива, напримерImageViews
, или чтобы некоторые данные помимоtoString()
результатов заполняли представления, переопределите,getView(int, View, ViewGroup)
чтобы вернуть тип представления, который вы хотите.
Итак, ваш код должен выглядеть так:
public class YourActivity extends Activity {
private ListView lv;
public void onCreate(Bundle saveInstanceState) {
setContentView(R.layout.your_layout);
lv = (ListView) findViewById(R.id.your_list_view_id);
// Instanciating an array list (you don't need to do this,
// you already have yours).
List<String> your_array_list = new ArrayList<String>();
your_array_list.add("foo");
your_array_list.add("bar");
// This is the array adapter, it takes the context of the activity as a
// first parameter, the type of list view as a second parameter and your
// array as a third parameter.
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
your_array_list );
lv.setAdapter(arrayAdapter);
}
}
руководство
Также посмотрите интерфейс ArrayAdapter :
источник
Попробуйте ответ ниже, чтобы заполнить список с помощью ArrayList
источник
источник
Вот пример того, как вы могли бы реализовать представление списка:
источник