EditTextPreferenceを拡張する
EditTextPreferenceをそのまま使いたくないこともあるわけです。
例えば、Preferenceに永続化させるときは文字列を暗号化さたい、とか。
そんな時はEditTextPreferenceをextendsしてonPrepareDialogBuilder()をオーバーライドしちゃえばいいわけです。
こんな感じ。
※値は"CCC"として保存するけど、EditTextに表示する際には"CCC converted"と表示して、保存するときは再び"CCC"で保存。
これに暗号化と復号化を組み合わせればいいわけですね。
例えば、Preferenceに永続化させるときは文字列を暗号化さたい、とか。
そんな時はEditTextPreferenceをextendsしてonPrepareDialogBuilder()をオーバーライドしちゃえばいいわけです。
こんな感じ。
※値は"CCC"として保存するけど、EditTextに表示する際には"CCC converted"と表示して、保存するときは再び"CCC"で保存。
これに暗号化と復号化を組み合わせればいいわけですね。
@Override
protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
// get value from xml file
String value = getText();
Log.d(TAG, "value : " + value);
// convert value
value = value + " converted";
// display converted value
this.getEditText().setText(value);
// event handler when select ok button
builder.setPositiveButton(
android.R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// re-convert value and save to xml
setText("CCC");
}
});
}
コメント
コメントを投稿