この問題に関しては同様の質問がありますが、いずれも私のために働いていません。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