在Android中配置小部件以输入4位数PIN的最佳方法是什么?
目前我有:
<EditTextPreference
android:title="PIN"
android:summary="Your PIN number"
android:key="password"
android:numeric="integer"
android:maxLength="4"
android:password="true"
/>
这很有效,但没有办法将输入限制为至少4位数。这是你如何让某人在偏好设置中设置PIN码?或者有更好的方法吗?
顺便说一句,在人们评论安全问题之前,我没有选择4位数的PIN,而是用于连接到第三方系统而我无法更改它。不,这不适合银行业。
答案 0 :(得分:3)
您可以添加OnPreferenceChangeListener并检查密码长度。
E.g。如果使用PreferenceActivity:
findPreference("password").setOnPreferenceChangeListener( new OnPreferenceChangeListener(){
public boolean onPreferenceChange (Preference preference, Object newValue){
if ((String)newValue).length == 4)
super.onPreferenceChange(preference, newValue);
else
Toast.makeText(this, "The PIN must have 4 digits", Toast.LENGTH_LONG).show();
}
});
答案 1 :(得分:0)
Github中有一个有趣的视图,它使4条目的编码非常简单易用。查看source