Как добавить массив в listview

#android #android-emulator #android-layout

#Android #android-эмулятор #android-layout

Вопрос:

У меня есть массив приложений (PInfo), и мне интересно, как мне добавить этот массив в listview?

 ArrayList<PInfo> info = appsGetter.listPackages();
    int number = 0;
    PInfo appInArray;
    while(number < info.size()){
        appInArray = info.get(number);
}
  

Это то, что у меня есть на данный момент, listPackages() — это метод, который получает названия приложений с устройства.

На данный момент я пытаюсь извлекать информацию из массива одну за другой и добавлять ее в listview подобным образом. Так ли я должен это сделать, должен ли я добавить массив прямо в listview? И как вы это делаете?

Комментарии:

1. Пожалуйста, напишите более четкий вопрос с некоторыми деталями? Смотрите tinyurl.com/so-hints

Ответ №1:

Вы можете использовать ArrayAdapter и инициализировать его следующим образом:

 ArrayAdapter<PInfo> adapter = new ArrayAdapter(context, 
                android.R.layout.simple_list_item_multiple_choice, 
                info);
  

Тогда вы сможете сами использовать ListView.setAdapter(adapter) .

Хотя я не уверен, что это то, о чем вы спрашиваете. Поэтому, пожалуйста, уточните подробнее, если это не то, о чем вы спрашиваете

Ответ №2:

Попробуйте использовать адаптер. Например (используя только строковое значение объекта), вы могли бы сделать следующее:

 ListView listView = (ListView)findViewById( R.id.myListView );
final ArrayList<String> listItems = new ArrayList<String>();
final ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, listItems );
listView.setAdapter( adapter );
  

Просто краткий пример, но я надеюсь, что он послужит вам отправной точкой. Просто убедитесь, что при последующем добавлении значений в ваш источник данных (в данном случае ArrayList) вы вызовете метод адаптера «notifyDataSetChanged()», чтобы он мог быть должным образом отражен во всем, что было привязано к адаптеру (в данном случае к ListView).

Ответ №3:

Вам нужно использовать ArrayAdapter. Просто найдите образец ListView и ArrayAdapter в Интернете. Это довольно просто, как только вы увидите, что это сделано.