Я знаю, что есть похожие вопросы по этой проблеме, но никто из них не работал для меня.Android refresh ListView
Я делаю приложение будильника с ListView
, отображающим все тревоги, которые хранятся в базе данных. Когда пользователь долго нажимает на один из элементов ListView
, он показывает диалог, подтверждающий, что он действительно хочет удалить выбранный сигнал тревоги, после нажатия кнопки «Да» будильник будет удален.
Проблема заключается в том, что моя ListView
обновляется после того, как я начал новую деятельность, а затем вернусь к той, где находится ListView
. Я хотел бы знать, что мне нужно сделать, чтобы обновить ее, как только удаляется будильник.
PS .: Я уже пробовал adapter.notifyDataSetChanged();
Вот мой код:
UITools.adaptAlarmsListView(this, listView, R.layout.alarm_listview_item);
listView.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> adapterView,
View view,
final int position, long l)
{
final boolean[] deletedFlag = {false}; // Tells if the alarm has been deleted
UITools.showDialogue(HomeActivity.this,
getString(R.string.delete),
getString(R.string.delete_question),
R.drawable.bin, getString(R.string.no),
new DialogInterface.OnClickListener()
{
@Override
public void onClick(
DialogInterface dialogInterface, int i)
{
// Do nothing
}
}, getString(R.string.yes),
new DialogInterface.OnClickListener()
{
@Override
public void onClick(
DialogInterface dialogInterface, int i)
{
AlarmDAO.delete(getBaseContext(),
position + 1);
UITools.showToast(getBaseContext(),
getString(R.string.deleted),
Toast.LENGTH_SHORT);
deletedFlag[0] = true;
}
});
if (deletedFlag[0])
{
listView.setAdapter(null);
UITools.adaptAlarmsListView(HomeActivity.this,
listView, R.layout.alarm_listview_item);
}
return true;
}
}
);
UITools.adaptAlarmsListView:
/**
* Adapts the alarms ListView
* @param context - Context
* @param listView - ListView
* @param listViewItemId - int
*/
public static void adaptAlarmsListView(Context context, ListView listView,
int listViewItemId)
{
Alarm[] alarms = AlarmDAO.getAlarms(context);
AlarmAdapter adapter = new AlarmAdapter(context, listViewItemId, alarms);
listView.setAdapter(adapter);
}
Вы должны опубликовать свой код. – jzarsuelo
Просто запустите код, который загружает его в первую очередь. – petey
@jzarsuelo, опубликовано – AlanC92