1

履歴アイテム(単語)を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にまったく慣れていないので、私のコードに基づいて指示を提供できれば素晴らしいと思います。どうもありがとうございます。

4

3 に答える 3

4

共有設定をクリアするには、使用します

editor.clear();
editor.commit();

また、あなたの質問を正しく受け取った場合。値が共有設定に保存されているかどうかを確認するには、次の操作を行います

SharedPreferences mySharedPrefs = getSharedPreferences("MyPreferences", 0);
                if(mySharedPrefs.contains("theKey")) {
SharedPreferences.Editor editor = settings.edit();
                editor.remove("thekey");
                editor.commit();
}
于 2012-05-31T12:09:51.887 に答える
2

これを試して

editor.remove("UserName");
editor.clear();
editor.putString("history",strHistory);   
editor.commit();
于 2012-05-31T12:14:49.383 に答える