Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式创建EditText';s输入类型密码不工作_Java_Android_Android Alertdialog - Fatal编程技术网

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();