我將歷史記錄項(單詞)保存到SharedPreferences中,並且歷史記錄已裝載好以在ListView中查看。然後我使用這些代碼行從ListView中刪除指定的項目:如何從ListView和SharedPreferences中刪除特定項目?
@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
}
選定的項目definetely從ListView中刪除,但它不是從它被保存SharedPreferences刪除。因此,當Listview重新加載時,該項目仍然存在。
我的問題是:我該如何編碼從SharePreferences中刪除所選項目?我的意思是如何從ListView和SharedPreferences中刪除選定的項目?
如果您可以提供基於我的代碼的說明,這是非常好的,因爲我對Android非常陌生。非常感謝你。
非常感謝你。我的問題是如何定義'theKey',它是從ListView中刪除的項目。此項可以是ListView中顯示的任何單詞。那麼如何告知SharedPreferences這個項目? –
定義首選項的值很簡單。你使用'editor.putString(key,value);'將一個鍵賦值給一個正確的值?如上面的代碼,我們正在檢查首選項是否確實包含首選項/值。閱讀這個http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#remove(java.lang.String)和這個http://developer.android.com/reference/android/content/ SharedPreferences.html#包含(java.lang.String)以獲得更多說明。如果這對你有幫助,請接受答案。謝謝 – Wesley
雖然我還沒有把我的問題整理出來,但我認爲這是我有限的Java知識的責任。無論如何,你的支持是一個答案。謝謝。 –