android - 适用于 Android 的 PIN 输入小部件

标签 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,它用于连接到第三方系统,我无法更改它。不,这不适用于银行业务。

最佳答案

您可以添加一个 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();
    }
});

关于android - 适用于 Android 的 PIN 输入小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767588/

相关文章:

android - Fragment 将所有导航控制委托(delegate)给 Activity 是个好主意吗?

java - android中的SAX解析

Android 为自定义 TextView 小部件设置字体

android - 小部件 Android 计费版本 3 的应用内购买

android - 键盘隐藏 ListView 内容

javascript - 禁用水平滚动 Android

android - 如何在 android 的 EditText 上显示数字键盘?

android - 在 Android 中获取 Google 个人资料图片

android - 如何在Android 4.0 默认日历中添加事件?

java - 未从项目单击监听器上的 gridview 获取所有图像