在我的应用程序中,我有一个EditText默认输入类型android:inputType="textPassword"由deault 设置为.它有一个CheckBox右边的,当被选中时,将EditText的输入类型更改为NORMAL PLAIN TEXT.代码是
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Run Code Online (Sandbox Code Playgroud)
我的问题是,当取消选中CheckBox时,它应该再次将输入类型设置为PASSWORD.我用它完成了 -
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Run Code Online (Sandbox Code Playgroud)
但是,该edittext中的文本仍然可见.令人惊讶的是,当我更改orienatation时,它会自动将输入类型设置为PASSWORD,并且内部的文本是项目符号(显示为密码).
有没有办法实现这个目标?
我在哪里可以找到InputType可以拥有的值?
我知道http://developer.android.com/reference/android/text/InputType.html,但是布局xml文件中的值应如何?
我使用EditText输入密码.还有一个CheckBox来显示密码.以下功能是部分:
public void ShowPassword() {
if (cb.isChecked()) {
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
} else {
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
Run Code Online (Sandbox Code Playgroud)
检查时,显示密码.但是当它没有被检查时,它确实显示了星星.如何在未选中cb的情况下修改它以显示星标?
任何人都可以解释之间的差异
android:inputType="textPassword",
android:inputType="textVisiblePassword",
android:inputType="textWebPassword",
android:inputType="numberPassword"
Run Code Online (Sandbox Code Playgroud)
Android版面中的EditText ViewGroup?
我试图在编辑文本中向用户显示输入类型为文本密码的键入密码.
我在这个切换图标上实现了gesturelistener,如下所示
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (view.getId())
{
case R.id.ivPasswordToggle:
switch ( motionEvent.getAction() ) {
case MotionEvent.ACTION_DOWN:
Toast.makeText(getContext(),"show",Toast.LENGTH_SHORT).show();
etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
break;
case MotionEvent.ACTION_UP:
etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT);
Toast.makeText(getContext(),"hide",Toast.LENGTH_SHORT).show();
break;
}
break;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我不知道什么是错的,任何帮助将不胜感激.
大家好我正在使用带编辑文本的警告对话框.所以我想以编程方式将输入类型设置为编辑文本的密码.我在谷歌搜索了很多并找出这两种方法:
final EditText input = new EditText(getActivity());
input.setTransformationMethod(PasswordTransformationMethod.getInstance());
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
Run Code Online (Sandbox Code Playgroud)
但它不适合我,它显示文本.但我想要点缀文字.我不知道的问题是什么.所以请建议我做.感谢所有提前.这是带编辑文本的对话框代码:
public void showDialog(){
/* Alert Dialog Code Start*/
AlertDialog.Builder alert = new AlertDialog.Builder(getActivity());
// alert.setTitle("JPOP"); //Set Alert dialog title here
alert.setMessage(" Please enter password"); //Message here
Log.e("dialog in password ","passworddddddddddddddddd");
// Set an EditText view to get user input
final EditText input = new EditText(getActivity());
// input.setInputType(InputType.TYPE_CLASS_TEXT);
// input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
// input.setTransformationMethod(PasswordTransformationMethod.getInstance());
// final EditText input = new EditText(getActivity());
input.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
input.setTransformationMethod(new PasswordTransformationMethod());
input.setHint("Password");
input.setSingleLine();
input.setTextSize(14);
alert.setView(input);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() …Run Code Online (Sandbox Code Playgroud) 我一直在尝试以编程方式将我的edittext设置为密码字段,如下所示:
方法1:
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Run Code Online (Sandbox Code Playgroud)
方法2:
password.setTransformationMethod(PasswordTransformationMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
方法3:
password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
Run Code Online (Sandbox Code Playgroud)
方法4:
public class MyPasswordTransformationMethod extends PasswordTransformationMethod {
@Override
public CharSequence getTransformation(CharSequence source, View view) {
return new PasswordCharSequence(source);
}
private class PasswordCharSequence implements CharSequence {
private CharSequence mSource;
public PasswordCharSequence(CharSequence source) {
mSource = source; // Store char sequence
}
public char charAt(int index) {
return '*'; // This is the important part
}
public int length() {
return mSource.length(); // Return default
}
public CharSequence subSequence(int start, int end) { …Run Code Online (Sandbox Code Playgroud) 我有一个编辑文本类的自定义实现.
基于这些XML属性.....
android:inputType="textPersonName"
android:inputType="textPersonName"
android:inputType="textEmailAddress"
android:inputType="textPassword"
Run Code Online (Sandbox Code Playgroud)
我希望能够在运行时知道这一点(在Java代码中)
我找到了这个方法,它给了我输入类型
getInputType()
Run Code Online (Sandbox Code Playgroud)
这些是基于我上面发布的XML返回的值.
97,97,33,129
但是,这些与此处列出的常量值不对应
http://developer.android.com/reference/android/text/InputType.html
如何在运行时知道编辑文本的输入类型?
我正在尝试使用以下数据绑定表达式在显示密码的旧方法之间切换:
android:password="@{isMyFlagTrue}"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用inputType现在不建议使用的password属性代替时,我似乎无法成功设置密码类型。我试过了:
android:inputType="@{isMyFlagTrue? InputType.TYPE_TEXT_VARIATION_PASSWORD : InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)}"
Run Code Online (Sandbox Code Playgroud)
但这对EditText视图的inputType没有影响。即使当我尝试将其直接设置为不可见的品种时,它仍然可见。
有什么建议么?
我有以下EditText按预期工作.
<EditText
android:id="@+id/etMensagem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_message"
android:minLines="4"
android:text="@string/send"
android:inputType="textCapSentences|textMultiLine"/>
Run Code Online (Sandbox Code Playgroud)
但是需要以编程方式设置属性(除了layout_width和height之外).
这是我的尝试:
edit_text.setText(context.getString(R.string.enviar_mensagem));
edit_text.setMinLines(4);
edit_text.setHint(context.getString(R.string.hint_message));
edit_text.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,文本不会包装.尽管它是一个多行的EditText,它将文本保存在一行中,与XML版本不同.
我错过了什么?