android的PIN输入小部件

android的PIN输入小部件,android,android-widget,Android,Android Widget,在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位

在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,它是用来连接第三方系统的,我不能更改它。不,这不适用于银行业务。

您可以添加OnPreferenceChangeListener并在那里检查密码长度

例如,如果使用偏好活动:

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();
    }
});

Github中有一个有趣的视图,它使4项的编码变得非常简单和易于使用。检查