问题描述
|
我需要在Android应用程序中使用\'username \'\'password \'字段以及两个按钮\'login \'和\'cancel \'创建一个登录表单。
我正在使用其中带有edittext的警报对话框。
这是我用来创建密码edittext的代码。
final EditText Password = new EditText(this);
Password.setGravity(Gravity.CENTER);
Password.setHint(\"Password\");
Password.setWidth(200);
Password.setTransformationMethod(new PasswordTransformationMethod());
login_alert.addView(Password);
我的问题是,当我打开软键盘来编辑密码时,将显示纯文本而不是\'\'。 (未在软键盘模式下显示为点)
谁能提出解决方案?
解决方法
Password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
这对我有用。
但是您必须查看Octavian Damiean的评论,他是对的。
,不推荐使用
在EditText的xml中,包含以下属性:android:password = \“ true \”
编辑
android:inputType=\"textPassword\"
,这是在密码中加点的新方法
<EditText
android:id=\"@+id/loginPassword\"
android:layout_width=\"fill_parent\"
android:layout_height=\"wrap_content\"
android:inputType=\"textPassword\"
android:hint=\"@string/pwprompt\" /
添加android:inputType = \“ textPassword \”
,您需要使用PasswordTransformationMethod.getInstance()
而不是new PasswordTransformationMethod()
。
,使用代码(不是XML)对我有用的唯一方法是:
etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
,看到这个链接
文字检视android:password
这也适用于EditText
,因为它是TextView
的已知直接子类。
,我发现这样做是为了将重心设置为居中,并且在using inputType
时仍显示密码提示,hint10ѭ必须在XML行的末尾。
<EditText android:textColor=\"#000000\" android:id=\"@+id/editText2\"
android:layout_width=\"fill_parent\" android:hint=\"Password\"
android:background=\"@drawable/rounded_corner\"
android:layout_height=\"fill_parent\"
android:nextFocusDown=\"@+id/imageButton1\"
android:nextFocusRight=\"@+id/imageButton1\"
android:nextFocusLeft=\"@+id/editText1\"
android:nextFocusUp=\"@+id/editText1\"
android:inputType=\"textVisiblePassword\"
android:textColorHint=\"#999999\"
android:textSize=\"16dp\"
android:gravity=\"center\">
</EditText>
,要设置在EditText中启用的密码,我们将必须在xml文件中设置一个\“ inputType \”属性。如果仅使用EditText,则将在EditText中设置输入类型,如下面的代码所示。
<EditText
android:id=\"@+id/password_Edit\"
android:focusable=\"true\"
android:focusableInTouchMode=\"true\"
android:hint=\"password\"
android:imeOptions=\"actionNext\"
android:inputType=\"textPassword\"
android:maxLength=\"100\"
android:nextFocusDown=\"@+id/next\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\" />
密码启用属性为
android:inputType=\"textPassword\"
但是,如果我们要使用Material Design(带有设计支持库)实现Password EditText,那么我们将按照下面的代码编写代码。
<android.support.design.widget.TextInputLayout
xmlns:app=\"http://schemas.android.com/apk/res-auto\"
android:id=\"@+id/txtInput_currentPassword\"
android:layout_width=\"match_parent\"
app:passwordToggleEnabled=\"false\"
android:layout_height=\"wrap_content\">
<EditText
android:id=\"@+id/password_Edit\"
android:focusable=\"true\"
android:focusableInTouchMode=\"true\"
android:hint=\"@string/hint_currentpassword\"
android:imeOptions=\"actionNext\"
android:inputType=\"textPassword\"
android:maxLength=\"100\"
android:nextFocusDown=\"@+id/next\"
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\" />
</android.support.design.widget.TextInputLayout>
@注意:-在Android SDK 24及更高版本中,\“ passwordToggleEnabled \”默认为true。因此,如果我们在密码EditText中对show / hide功能进行了海关处理,则必须在上面的代码中将其设置为false。
app:passwordToggleEnabled=\"true\"
要添加以上行,我们必须在根目录布局中添加以下行。
xmlns:app=\"http://schemas.android.com/apk/res-auto\"
,我对Visual Studio 2015 / Xamarin的类似解决方案的搜索将我带到了这个话题。在将EditText.InputType
设置为Android.Text.InputTypes.TextVariationVisiblePassword
时,可以在用户输入期间正确隐藏密码,但是如果在呈现EditText布局之前(在用户提交密码输入之前)可以看到密码,则它不会“隐藏”密码。为了在用户提交密码并呈现EditText布局后隐藏可见的密码,我使用了LuxuryMode建议的ѭ19。