Как ссылаться на 2 ArrayAdapters отдельно

#android

#Android

Вопрос:

Я работал над пониманием ArrayAdapters в течение последних 2 дней, но, похоже, не могу полностью разобраться с ними.

Следующий код функционален как есть.

     private void initAdapter(ArrayList<String> aL) {


    for (String s : aL) {
        aL.add(s);
    }

    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, aL) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
        View row;

        if (null == convertView) {
        row = mInflater.inflate(R.layout.list_item, null);
        } else {
        row = convertView;
        }

        TextView tv = (TextView) row.findViewById(android.R.id.text1);
        tv.setText(getItem(position));

        return row;
        }
       });
}
  

Я пытаюсь превратить это в метод, в котором я могу использовать ArrayAdapter для нескольких массивов и помещать их в отдельные ListViews.
Когда я пытаюсь изменить метод на

 private void initAdapter(ArrayList<String> aL, ListView L) {
  

и

 L.setAdapter(new ArrayAdapter<String>(this. R.layout.list_item, aL) {
  

Я получаю ошибку при компиляции.
Кроме того, почему вам не нужно указывать ListView для вашего первого ArrayAdapter. Это просто автоматически ссылается на что-либо с идентификатором ‘list’?

Я совершенно сбит с толку и застрял на этом и был бы очень благодарен за хорошо объясненный ответ.

Ответ №1:

Я предполагаю, что этот код является частью ListActivity . В этом случае метод setListAdapter() автоматически ссылается на список по идентификатору android.R.id.list . Для того, что происходит с адаптером, потребуется трассировка стека из logcat, чтобы увидеть, какая ошибка там возникает.