設定フラグメントを表示するだけの非常に単純なアクティビティがあります。
public class PreferencesActivity extends Activity {
Fragment frag = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentTransaction ft = getFragmentManager().beginTransaction();
if (frag == null) {
// If not, instantiate and add it to the activity
frag = new PrefsFragment();
ft.add(android.R.id.content, frag, frag.getClass().getName());
} else {
// If it exists, simply attach it in order to show it
ft.attach(frag);
}
ft.commit();
}
private static class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
永続性をtrueに設定したpreferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:enabled="true"
android:persistent="true"
android:title="@string/settings" >
<EditTextPreference
android:dialogTitle="@string/dialog_ip"
android:negativeButtonText="@android:string/cancel"
android:persistent="true"
android:positiveButtonText="@android:string/ok"
android:title="@string/ip" />
</PreferenceScreen>
EditTextPreference を開いた場合は、何かを書き、ダイアログを閉じて、もう一度開きます。値はまだそこにあります。しかし、それだけです... 戻るボタンをクリックして、設定画面でもう一度入力すると、書かれたものはすでに失われています。アプリケーションを終了しても保存されません。
ここで何か不足していますか?
で実行: Android 4.0.3 Asus TF300