Android的PIN码输入小部件

3

如何在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码,它是用于连接第三方系统的,我无法更改它。而且,这不是用于银行业务。

2个回答

3
您可以添加一个OnPreferenceChangeListener并在那里检查密码长度。
例如,如果使用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();
    }
});

0

Github 上有一个有趣的视图,使得编写 4 个条目的代码变得非常简单易用。请查看 source


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接