Замена содержимого в ArrayAdapter

354
31 августа 2017, 18:42

Есть файл arrays.xml, в котором объявлены 2 массива строк:

<string-array name="firstList">
    <item>Один</item>
    <item>Два</item>
    <item>Три</item>
    <item>Четыре</item>
    <item>Пять</item>
</string-array>
<string-array name="secondList">
    <item>One</item>
    <item>Two</item>
    <item>Three</item>
    <item>Four</item>
    <item>Five</item>
</string-array>

Также имеется класс MainList, унаследованный от ListFragment:

public class MainList extends ListFragment {
//объявляем адаптер
private ArrayAdapter<String> adapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    //инициализируем адаптер и устанавливаем содержимое по 
    умолчанию (отображается при запуске активити)
    adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.firstList));
    setListAdapter(adapter);
}

Как при клике на пункт списка поменять содержимое адаптера с R.array.firstList на R.array.secondList?

Answer 1
//Читаем оба ресурса в разные переменные:
List<String> firstList=Arrays.asList(getResources().getStringArray(R.array.firstList));
List<String> secondList=Arrays.asList(getResources().getStringArray(R.array.secondList));
//Создаем адаптер с первым списком
adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, firstList);

В случае необходимости (по клику или как там у вас) чистим список и добавляем в адаптер значения из второго списка

adapter.clear();
adapter.addAll(secondList);
adapter.notifyDataSetChanged();
Answer 2

пересоздать адаптер либо заменить значения массива и обновить адаптер

READ ALSO
Импорт из другого пакета Java

Импорт из другого пакета Java

Понимаю, что вопрос скорее глупыйНужно создать два класса в разных пакетах и импортировать метод из одного класса в другой

455
В чём отличие isBlank vs isEmpty?

В чём отличие isBlank vs isEmpty?

В чём отличие isBlank vs isEmpty?

382
Рисование направляющих в Google Maps API Android

Рисование направляющих в Google Maps API Android

В данном API есть функции рисования полигона и ломаных линийПосле рисования полигона нужно произвести разметку прямыми линиями как это показано...

435