Есть ли у ArrayAdapter метод, который возвращает весь список, переданный ему в конструкторе?

Я узнал, что вы не должны сохранять список или контекст в настраиваемом поле ArrayAdapter, потому что после передачи их в супер-метод следующим образом:

public CountryAdapter(Context context, ArrayList<CountryItem> countryList) {
    super(context, 0, countryList);
}

мы можем получить доступ к этим значениям с помощью getContext и getItem(position). Но в моем случае мне нужен весь список в моем настраиваемом адаптере, а не только один элемент. Я не нашел метода, который возвращает список, означает ли это, что мне нужно создать переменную-член для своего списка?

вы не должны сохранять список или контекст в настраиваемом поле ArrayAdapter можешь сделать это если хочешь
Jyoti JK 30.03.2018 13:41
1
1
93
2

Ответы 2

Да, Флориан, вы можете создать переменную-член для хранения countryList и получать ее в любое время через экземпляр адаптера. Можете ли вы сослаться на какой-нибудь пост или ссылку, где указано иное?

Это тоже может быть полезно Получить список элементов в настраиваемом адаптере

Оператор спросил о ArrayAdapter.

Jyoti JK 30.03.2018 13:50

Arrayadapter нет никакого метода для возврата списка.

И в arrayadapter список частный

private List<T> mObjects;

Если вам нужен этот список, просто сохраните его в своем поле класса дочернего адаптера. //CountryAdapter

I learned that you should not save the List or the Context in a custom ArrayAdapter field

Вы можете получить доступ к списку и контексту в вашем классе адаптера. Это не повлияет вызов метода суперкласса.

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

Если у вас возникли проблемы с сохранением списка, вы можете использовать метод отражения получить поле списка ArrayAdapter (mObjects). Но это не рекомендуется и не нужно. Просто сохраните его в своем адаптере

Другие вопросы по теме