Я отримую дані для заповнення мого списку перегляду за допомогою AsyncTask. Мені потрібно змінити адаптер для списку перегляду в onPostExecute()
protected void onPostExecute(ArrayList<JSONObject> result) {
MarkersListAdapter adapter = (MarkersListAdapter) this.markersList.getAdapter();
adapter.clear();
adapter.addAll(result);
this.markersList.setAdapter(adapter);
то я хочу внести деякі зміни в нові перегляди, але після перегляду програми з ListView з'являються нові представлення onPostExecute()
. Я хочу змусити андроїд заповнити свій список переглядів, коли він з'явиться onPostExecute()
. Я спробував notifyDatasetChanged()
для адаптера і invalidate()
для перегляду списку, але ніхто не працював.
Відповіді:
0 для відповіді № 1Мені вдалося це зробити, змінивши список і припустивши недійсний список listview.
Спочатку встановіть адаптер на списокView.
listView.setAdapter(new MyListAdapter(getActivity(), R.layout.list_cell_layout, objList));
Кожного разу, коли вам потрібно оновити список, просто внесіть зміни до objList і дзвоніть в список listview, як це:
objList.remove(1);
listView.invalidateViews();
Він працював для мене.