Android 用户输入第一个字符后更改EditText inputType

Android 用户输入第一个字符后更改EditText inputType,android,android-edittext,android-inputtype,Android,Android Edittext,Android Inputtype,我的xml文件中有这样一个EditText: <EditText android:id="@+id/InputPass" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginBottom="20dp" android:layout_marginLe

我的xml文件中有这样一个
EditText

<EditText
    android:id="@+id/InputPass"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="40dp"
    android:layout_marginRight="40dp"
    android:drawableLeft="@drawable/ic_lock"
    android:gravity="right"
    android:hint="رمز عبور"
    android:singleLine="true"
    android:textSize="18sp" />
但它不起作用! 有人知道解决这个问题的方法吗?

后织物变化

方法,请尝试执行以下操作:

  @Override
        public void afterTextChanged(Editable s) {
            System.out.println("Editable: "+s);
            if(s.getText().toString().length ==1)
               Pass.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
        }
更改:

Pass.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
致:


我通过这一次取得了最好的结果:

Pass.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
            Pass.setTransformationMethod(PasswordTransformationMethod.getInstance());
        }
    }
});

getText()对于可编辑的类型未定义!嗨,兄弟,一个问题,当我应用这个解决方案并在之后获取edittext文本时,
Pass.getText().toString()
返回缺少第一个字符的字符串!!!e、 如果我输入123456得到文本返回23456@你怎么了?我提到过你,这个答案有点不对劲!用户第一次填写EditText时,返回的字符串缺少第一个字符,但当用户再次填写时,返回的字符串与用户输入的字符串相同@5月3日上午我刚测试过,为我工作。。尝试在代码/xml中的某些地方找到bug。证明:
Pass.setTransformationMethod(PasswordTransformationMethod.getInstance());
Pass.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
            Pass.setTransformationMethod(PasswordTransformationMethod.getInstance());
        }
    }
});