Bri*_*a K 2 android sharedpreferences
我有一个列表视图,将从共享首选项加载.当用户点击删除时,它应该从列表中删除并粉碎首选项.我的问题是,特定项目不会从共享首选项中删除,因为我使用下面的代码,
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();
Run Code Online (Sandbox Code Playgroud)
通过此代码,只有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>
Run Code Online (Sandbox Code Playgroud)
当用户点击删除我想删除这3行表格的偏好文件.如何删除整行?列表仅显示名称(APPLE).
在线有错误:
editor.remove("deviceId" + String.valueOf(deviceid));
Run Code Online (Sandbox Code Playgroud)
它应该是
editor.remove("deviceId" + String.valueOf(index));
Run Code Online (Sandbox Code Playgroud)
也许您还想删除deviceSize键:
editor.remove("deviceSize");
Run Code Online (Sandbox Code Playgroud)
在提交之前.
你的代码不是很清楚.使其更具可读性.
| 归档时间: |
|
| 查看次数: |
9522 次 |
| 最近记录: |