【发布时间】:2012-03-29 10:33:30
【问题描述】:
感谢 dmon 和此处的示例 Process the value of preference before save in Android?
我能够获取基本代码。但是我的值没有被加密存储在设备上的 preferences.xml 中,我知道这是我的一个简单错误(java 新手)。
我的加密和解密类在 EditTextPreference 代码之外工作。
亲切的问候,
迈克
我的preferences.xml
<ping.test.com.EncryptedEditTextpreference
android:key="key"
android:summary="Enter Your Public Key"
android:title="Public Key"
android:inputType="textPassword"/>
</PreferenceCategory>
我的类扩展 EditTextPreference
package ping.test.com;
import android.content.Context;
import android.preference.EditTextPreference;
import android.util.AttributeSet;
public class EncryptedEditTextPreference extends EditTextPreference {
public EncryptedEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public EncryptedEditTextPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EncryptedEditTextPreference(Context context) {
super(context);
}
@Override
public String getText() {
String value = super.getText();
try {
return SimpleCrypto.decrypt("BiteMe", value);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
@Override
protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {
super.setText(restoreValue ? getPersistedString(null) : (String) defaultValue);
}
@Override
public void setText(String text) {
try {
super.setText(SimpleCrypto.encrypt("BiteMe", text ));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
【问题讨论】:
-
我正在尝试在类中扩展 EditTextPreference,但出现以下错误。 'android.preference.EditTextPreference' 中没有可用的默认构造函数任何想法如何解决这个问题?
标签: android encryption passwords preferences