履歴アイテム(単語)をSharedPreferencesに保存すると、履歴が十分に読み込まれ、ListViewで表示できます。次に、次のコード行を使用して、ListViewから特定のアイテムを削除します。
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
editNote(info.id);
return true;
case R.id.delete:
String content = (String) mLSTHistory.getItemAtPosition(info.position);
aptList.remove(content);
aptList.notifyDataSetChanged();
deleteNote(info.id);
return true;
default:
return super.onContextItemSelected(item);
}
}
private void deleteNote(long id) {
// TODO Auto-generated method stub
if (prefs.getBoolean("saveHistory", true) && mWordHistory != null && mWordHistory.size() >= 1)
prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
StringBuilder sbHistory = new StringBuilder();
for (String item : mWordHistory)
{
sbHistory.append(item);
sbHistory.append(",");
String strHistory = sbHistory.substring(0, sbHistory.length()-1);
SharedPreferences.Editor editor = prefs.edit();
//editor.remove(content);
editor.putString("history", strHistory);
editor.commit();
}
}
private void editNote(long id) {
// TODO Auto-generated method stub
}
選択したアイテムはListViewから確実に削除されますが、保存されているSharedPreferencesからは削除されません。したがって、リストビューが再ロードされても、アイテムはまだそこにあります。
私の質問は、SharePreferencesから選択したアイテムを削除するようにコーディングするにはどうすればよいですか?選択したアイテムをListViewとSharedPreferencesの両方から削除するにはどうすればよいですか?
私はAndroidにまったく慣れていないので、私のコードに基づいて指示を提供できれば素晴らしいと思います。どうもありがとうございます。