让用户在Android中输入SSN的最佳布局是什么?

时间:2014-12-16 17:58:09

标签: android login

为公司创建一个新的应用程序,该公司将拥有3位数的公司ID和9位数的SSN ID。编辑文本字段是最佳方式吗?

2 个答案:

答案 0 :(得分:1)

是的,对于任何以键盘为中心的数据输入,EditText都是您的最佳选择。您可以告诉键盘期望的数据类型,并使用inputType属性为该类型的数据自定义键盘。如果您只是期待数字

<EditText
    android:id="@+id/numberEntry"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="number" />

这将告诉键盘显示数字键盘。这里有更多选项https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType,此处有https://developer.android.com/training/keyboard-input/style.html解释。但是,指定inputType不会阻止用户通过物理键盘输入非数字。您需要事后验证。

您可以使用

限制字符数
android:maxLength="10"

答案 1 :(得分:1)

正如@browep所提到的,EditText当然应该在这里工作。不过,我会补充一点,您可能希望使用textPassword android:inputType。这将为您的用户提供安全感,使输入的字符在视图中隐藏。您可以采取一些其他措施来确保您的用户正确输入他们的SSN。

  1. 指定android:digits属性。对于ssn,它可能类似于:“0123456789-”。此属性将输入限制为您指定的字符;
  2. 添加一个有用的提示,告诉用户您期望的输入。例如,您可以定义一个字符串资源<string name="ssn_hint">555-55-5555</string>并将其包含为提示,例如`android:hint =“@ string / ssn_hint”;
  3. 如@browep所述,使用android:maxLength属性。不过,为了容纳破折号,我建议长度为11个字符:android:maxLength="11";
  4. 使用文本掩码自动验证输入。不幸的是,我找不到任何优秀的图书馆,但您可以尝试https://github.com/toshikurauchi/MaskedEditTexthttps://github.com/reinaldoarrosi/MaskedEditText
  5. 在一天结束时,您最终会看到EditText,如下所示:

    <EditText
        android:id="@+id/ssn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:digits="01234567890-"
        android:hint="@string/ssn_hint"
        android:inputType="textPassword"
        android:maxLength="11"/>