8
ローカルアンドロイドデータベースに保存する前にパスワードを暗号化する必要があります。暗号化なしですべて正常に動作しますが、私にはpreferences.xmlなどがあります。の後に、どのように機能を呼び出すことができますか?(たとえば、パスワード)の値を変更しますか?ここに私のコードです:Androidに保存する前に環境設定の値を処理しますか?
public class Preferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
// Get the custom preference
Preference customPref = (Preference) findPreference("pass");
customPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener(){
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String crypto = SimpleCrypto.encrypt("MYSECRETKEY", newValue.toString()); // encrypt
// Here is where I'm wrong, I guess.
SharedPreferences settings = getSharedPreferences("preferences", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putString("pass", crypto);
editor.commit();
});
}
}
P.S:このように、パスワードを変更すると、暗号化されずにパスワードが保存されます。
アイデアをお寄せいただきありがとうございます。自分のエクステンダクラスを作成しましたが、これを自分の環境設定画面にどのように実装しますか? XMLファイルの エントリを使用していますか?私はこの方法を試みたが成功しなかった。 –
EvanBlack
完全修飾名でなければなりません。 –
dmon
ありがとうございます、それは魔法のように動作します。 :) – EvanBlack