Android的PIN输入小部件

时间:2010-09-22 08:39:34

标签: 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位数。这是你如何让某人在偏好设置中设置PIN码?或者有更好的方法吗?

顺便说一句,在人们评论安全问题之前,我没有选择4位数的PIN,而是用于连接到第三方系统而我无法更改它。不,这不适合银行业。

2 个答案:

答案 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