SharedPreferences からリスト ビューのオプションの 1 つをプログラムで削除しようとしています。以下に簡略化したコードを含めました。
同様の質問をたくさん読みましたが、うまくいかないようです。私は重要な概念を誤解しているに違いありません。助けてください。
clear() と apply() を使用してみました。また、すべてを削除する代わりに a 行を追加しようとしましたが、成功しませんでした。
どのキーを使用するかという概念を誤解している可能性があると思いますが、代替キーを試してみましたが、何も機能していないようです.
私の好み.java
package il.preferences;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Preferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences preferences = getSharedPreferences(
"myKey", MODE_PRIVATE);
preferences.edit().remove("1").commit();
}
}
私の好み.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Cat X" >
<ListPreference
android:defaultValue="1"
android:entries="@array/myOptions"
android:entryValues="@array/myValues"
android:key="myKey"
android:summary="Select an item"
android:title="Choose" />
</PreferenceCategory>
</PreferenceScreen>
私のstrings.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<resources>
<string-array name="myOptions">
<item>A</item>
<item>B</item>
<item>C</item>
</string-array>
<string-array name="myValues">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>