Ho bisogno di criptare la mia password prima di salvarla nel database Android locale. Tutto funziona bene senza crittografia, ho preferenze.xml e così via. Come posso chiamare una funzione dopo Modificare il valore di preferenza (ad esempio, password)? Qui è il mio codice:Elabora il valore della preferenza prima di salvare in 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: Come questo, quando cambio della password, memorizza la password senza crittografia.
Grazie per l'idea, ho creato la mia classe di estensione ma come posso implementarla nella schermata delle mie preferenze? Con una voce nel file XML? Ho provato in questo modo ma nessun successo. –
EvanBlack
Deve essere il nome completo, ad es. –
dmon
Grazie, funziona come per magia. :) – EvanBlack