我将历史记录项(单词)保存到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知识的责任。无论如何,你的支持是一个答案。谢谢。 –