Заполнить ListView из Arraylist> - PullRequest
       22

Заполнить ListView из Arraylist>

2 голосов
/ 17 ноября 2011

У меня есть ArrayList<HashMap<Contact, Name>>, и я хочу заполнить его ListView. Какой тип адаптера я могу использовать и что я могу указать в поле from моего адаптера? Пример ниже:

String[] from = ?
int[] to = new int[] { R.id.contact, R.id.name});
adapter = new KindOfAdapter(this, R.layout.row, from, to)

Надеюсь, это понятно. Цени любую помощь.

Ответы [ 4 ]

2 голосов
/ 17 ноября 2011

1. Реализация BaseAdapter

Я думаю, что вам лучше всего расширить BaseAdapter и внедрить следующие методы:

getCount()
getItem(int)
getItemId(int)
getView(int, View, ViewGroup)

Это будет выглядеть примерно так:

public class MyAdapter extends BaseAdapter() {
   private List<Map<Contact, Name>> map;
   private Context context;

   public MyAdapter(List<Map<Contact, Name>> map>, Context context) {
      this.map = map;
      this.context = context;
   }

   public int getCount() {
      return map.size(); // or do you want one list item per name?
      // if so, just count out all the map entries in each item of the list
   }

   public int getItemId(int position) {
      return position; // doesn't matter too much...
   }

   public View getView(int position, View convertView, ViewGroup parent) {
      // populate the view here...
      // use LayoutInflater.from(context).inflate(resource, parent, false) to inflate new views
   }
}

2. Будьте внимательны при использовании шаблона ViewHolder

При реализации getView () использование этого шаблона проектирования сэкономит МНОГО памяти:

http://www.screaming -penguin.com / узел / 7767

0 голосов
/ 17 ноября 2011

Я уверен, что эта ссылка вам очень поможет.Загрузите также образец исходного кода.

0 голосов
/ 17 ноября 2011

ArrayAdapter> - ArrayAdapter предназначен для использования с ArrayLists (и массивами []), хотя он не поддерживает привязку View, вам нужно только переопределить getView ()

0 голосов
/ 17 ноября 2011

вот помощь, вы видите, что этот вопрос очень полезен для вас ..

Как перебрать Arraylist >?

...