Ответ 1
Вы должны установитьAdapter только в onCreate()
, внутри onResume()
вам просто нужно было вызвать adapter.notifyDataSetChanged()
с новым набором данных. Это обновит ваш ListView новой коллекцией данных.
Я использую адаптер списка, чтобы показывать разные магазины, когда кто-то выбирает хранилище, он переносит их в новую активность, где они могут добавить магазин в избранное на этом экране.
Появляется кнопка "Назад", которая вызывает finish();
, которая возвращается к экрану со списком.
Теперь проблема в том, что listview не обновляется (т.е. не показывает, что магазин уже добавлен в избранное). Я пробовал этот код, но не повезло:
@Override
public void onResume() {
super.onResume();
list.setAdapter(null);
updateMyList();
adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])),
((String[])status.toArray(new String[0])));
list.setAdapter(adapter);
}
updateMyList()
вызывает API-интерфейс сервера и обновляет имена и статусные массивы.
С помощью этого кода список на самом деле не обновляется...
Вы должны установитьAdapter только в onCreate()
, внутри onResume()
вам просто нужно было вызвать adapter.notifyDataSetChanged()
с новым набором данных. Это обновит ваш ListView новой коллекцией данных.
Используйте этот код:
myList.clear();
myList.add("your array list items");
setListAdapter(adapter);
adapter.notifyDataSetChanged();
Я думаю, это поможет вам.
Спасибо....
Прежде всего, вам нужно добавить список магазинов в arraylist, отправьте этот список массивов в ADAPTER, затем добавьте его в представление списка
list.setAdapter(adapter);
отобразит список магазинов; возьмите onListItemClick
нажмите там u получит listItem
Id; используя идентификатор элемента списка, вы можете дать такое намерение
Intent intent=new Intent(getApplicationContext(),------.class);
startActivityForResult(intent);
Возьмите класс java bean/setter и getter methods; возьмите метод getter как статический, установите имя магазина, которое вы создали в дочерней активности; метод переопределения onBackPressed()
; внутри этого метода пишите
setResult(RESULT_OK);
finish();
взять метод onActivityForResult()
в родительском классе; внутри этого метода
arraylist.add(javabeanClassname.getName());
добавьте этот arraylist в Adapter
и напишите код
list.setAdapter(adapter);
Перед добавлением нового представления в списокView удалите все предыдущие представления
listView.removeAllViews();
а затем добавьте класс адаптера с новыми значениями. Убедитесь, что ваши значения обновляются, когда вы возвращаетесь из второго действия, и этот код вызывает.