文字未显示为密码

时间:2017-12-05 12:39:53

标签: android android-edittext passwords

我有四个用于密码的EditTexts,当我输入值时,它会自动移动到下一个edittext。我正在关注How to change the focus to next edit text in android?,它的工作正常但是在第二个文本中输入数字之后它没有更改为密码,它显示为数字,直到我触摸EditText字段。 我设置了 android:inputType =" numberPassword"。
但它显示数字,当我触摸屏幕或当我回来按下所有字段显示为密码时,它作为密码。
但在触摸或反按编辑文本字段之前,它始终显示数字 我的要求是,当我输入它时,它应该显示字符作为密码而不是数字,但在背压之前它显示为数字 请指导我。

下面给出了我的xml用于一个EditText,并且有四个编辑文本。

<EditText
  android:id="@+id/cnf_pin_first_edittext"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:contentDescription="@string/pin_content_desc"
  android:inputType="numberPassword"
  android:layout_marginRight="5dp"
 android:layout_marginLeft="5dp         android:background="@drawable/text_box_underline_selector"
 android:textColor="@color/black" />

我的三个编辑文本的代码如下所示

 final StringBuilder sbForFirstText = new StringBuilder();
    setPinFirstDigitEditText.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if (sbForFirstText.length() == 0 & setPinFirstDigitEditText.length() == 1) {
                sbForFirstText.append(s);
                setPinFirstDigitEditText.clearFocus();
                setPinSecondDigitEditText.requestFocus();
                setPinSecondDigitEditText.setCursorVisible(true);
            }
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            if (sbForFirstText.length() == 1) {
                sbForFirstText.deleteCharAt(0);
            }
        }
        public void afterTextChanged(Editable s) {
            if (sbForFirstText.length() == 0) {
                setPinFirstDigitEditText.requestFocus();
            }
        }
    });

    final StringBuilder sbSecondText = new StringBuilder();
    setPinSecondDigitEditText.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if (sbSecondText.length() == 0 & setPinSecondDigitEditText.length() == 1) {
                sbSecondText.append(s);
                setPinSecondDigitEditText.clearFocus();
                setPinThirdDigitEditText.requestFocus();
                setPinThirdDigitEditText.setCursorVisible(true);
            }
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            if (sbSecondText.length() == 1) {
                sbSecondText.deleteCharAt(0);
            }
        }
        public void afterTextChanged(Editable s) {
            if (sbSecondText.length() == 0) {
                setPinSecondDigitEditText.requestFocus();

            }
        }
    });

    final StringBuilder sbThirdText = new StringBuilder();
    setPinThirdDigitEditText.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub
            if (sbThirdText.length() == 0 & setPinThirdDigitEditText.length() == 1) {
                sbThirdText.append(s);
                setPinThirdDigitEditText.clearFocus();
                setPinForthDigitEditText.requestFocus();
                setPinForthDigitEditText.setCursorVisible(true);
            }
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            if (sbThirdText.length() == 1) {
                sbThirdText.deleteCharAt(0);
            }
        }
        public void afterTextChanged(Editable s) {
            if (sbThirdText.length() == 0) {
                setPinThirdDigitEditText.requestFocus();
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

设置systemctl start