Android 用户输入第一个字符后更改EditText inputType
我的xml文件中有这样一个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
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());
}
}
});