Android перезагрузить вид сетки пользовательский адаптер - PullRequest
0 голосов
/ 18 июня 2019

Хотя у меня есть работающее «решение», оно мне действительно не нравится, и я думаю, что это приведет к проблемам с памятью.В конечном счете, у меня есть действие, которое состоит из GridView, который заполняется массивом объектов - subjectArrayList

. На занятии у меня есть кнопка, где я хочу «перезагрузить» массив и обновить вид сетки.

В настоящее время у меня есть это:

// reload all subjects
        subjectAreas = "all";
        subjectsArrayList = populateSubjects();
        myAdapter = new MyAdapter(getApplicationContext(), subjectsArrayList);
        gridView.invalidateViews();
        gridView.setAdapter(myAdapter);

Я уверен, что есть более элегантный метод.Меня беспокоит то, что я создаю другой адаптер, а не перерабатываю его.

Я посмотрел на notifyDataSetChanged (), но не совсем ясно, как его использовать, и мои различные попытки приводят к тому, что ничего не происходит.

Вопросы: 1) Хорошо ли я делаюили я правильно беспокоюсь о том, что каждый раз заново создаю свой адаптер?2) Есть ли лучший способ добиться того, чего я хочу?

Заранее спасибо

1 Ответ

0 голосов
/ 18 июня 2019

Вы должны:

  • обновить адаптер новыми данными
  • вызов myAdapter.notifyDataSetChanged() для обновления GridView

Лучше, вы должны использовать RecyclerView с GridLayoutManager вместо GridView

...