我有一個列表視圖,這些將從共享首選項加載。當用戶點擊刪除時,它應該從列表和碎片偏好中刪除。我的問題是,在特定項目不從共享偏好刪除,爲此,我使用下面的代碼,Android - 從共享首選項刪除鍵值對
SharedPreferences settings = getSharedPreferences(
OptionsActivity.PREFS_NAME, 0);
int deviceSize = settings.getInt("deviceSize", 0);
SharedPreferences.Editor editor = settings.edit();
String deviceName = items.get(index);
editor.remove(deviceName + String.valueOf(items.get(index)));
editor.remove("deviceName" + String.valueOf(index));
int deviceid = settings.getInt("deviceId"+String.valueOf(items.get(index)),0);
editor.remove("deviceId" + String.valueOf(deviceid));
editor.putInt("deviceSize", deviceSize - 1);
editor.commit();
通過這個代碼僅deviceSize-1工作,所以它似乎是從列表中刪除,但是當我看到共享的首選項文件,不是。 我的共享首選項文件是低於,
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="deviceName1">APPLE</string>//delete when click on delete
<int name="deviceId1" value="0" /> //delete when click on delete
<int name="deviceSize" value="1" /> //decrease by one when item deleted
</map>
當用戶點擊刪除我想刪除這些三線
形式的偏愛文件。如何刪除整行?該列表只顯示名稱(APPLE)。
你怎麼叫'提交()'後? –
這將是代碼的最後一行。 Brinda。請說明如何設置索引和項目。你也在濫用sharedPreferences。這應該在SQLite中完成。由於您試圖爲關係數據使用非關係數據存儲,因此您將始終遇到此代碼的問題。 – Simon
@Fess是的,我用了commit()。 –