Java 以编程方式创建EditText';s输入类型密码不工作
我已在Java 以编程方式创建EditText';s输入类型密码不工作,java,android,android-alertdialog,Java,Android,Android Alertdialog,我已在AlertDialog中以编程方式创建了一个EditText,但无法将其输入类型更改为密码。下面是我的代码 AlertDialog.Builder alert = new AlertDialog.Builder(this); final EditText edittext = new EditText(ChildMainScreen.this); edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VA
AlertDialog
中以编程方式创建了一个EditText
,但无法将其输入类型更改为密码。下面是我的代码
AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText edittext = new EditText(ChildMainScreen.this);
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
edittext.setSingleLine(true);
alert.setMessage("Please enter password to continue");
alert.setView(edittext);
alert.show();
我也试过,
edittext.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
及
但是没有运气
Android版本是7(牛轧糖)试试这个-:
edittext.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);`
而不是-:
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
你需要这样写:
editText.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
试试这个:- 同时尝试两件事
AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText edittext = new EditText(ChildMainScreen.this);
edittext.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
edittext.setSingleLine(true);
edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());
alert.setMessage("Please enter password to continue");
alert.setView(edittext);
alert.show();
输出:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText edittext = new EditText(ChildMainScreen.this);
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
edittext.setSingleLine(true);
edittext.setMaxLines(1);
alert.setMessage("Please enter password to continue");
alert.setView(edittext);
alert.show();
只需替换
edittext.setSingleLine(true)代码>带有edittext.setMaxLines(1)代码>
您可以尝试以下方法获取密码作为输入
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
final EditText edittext = new EditText(getActivity());
edittext.setRawInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD );
edittext.setSingleLine(true);
edittext.setTransformationMethod(PasswordTransformationMethod.getInstance());
alert.setMessage("Please enter password to continue");
alert.setView(edittext);
alert.show();
根据文件
TYPE\u TEXT\u VARIATION\u VISIBLE\u PASSWORD
正在输入密码,该密码应
*对用户可见
键入\u TEXT\u VARIATION\u PASSWORD
正在输入密码。首先将其添加到您的清单中
<activity
android:name=".YourActivity"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
然后检查它是否为您提供了所需的行为同时尝试这两种方法检查我的答案..我已经尝试过,setInputType
和setTransformation
一起尝试,但是在您说要一起尝试setRawInputType
和setTransformation
之后。我只是做了,但在我的案子里没有工作。但还是一样,没用。还是一样(ohhhh…!!我起初认为它不相关,但我尝试了一下。你是对的。它之所以发生是因为setSignleLine(true)
。它与setMaxLines(1)
一起工作。非常感谢!
<activity
android:name=".YourActivity"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" />
AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText edittext = new EditText(ChildMainScreen.this);
edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
edittext.setSingleLine(true);
edittext.setMaxLines(1);
alert.setMessage("Please enter password to continue");
alert.setView(edittext);
alert.show();