切换EditText的密码为显示和隐藏的时候, 会有全角半角切换的问题。
原因是EditText是密码格式的时候, 默认是全角MONOSPACE
的。
所以需要我们手动修改为SANS_SERIF
。
原文地址
Edittext password属性为true导致hint全角有关问题
代码
MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| package com.qefee.pj.testtypeface;
import android.graphics.Typeface; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.text.InputType; import android.text.Selection; import android.view.View; import android.widget.Button; import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
EditText editText; Button submitButton;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText); submitButton = (Button) findViewById(R.id.submitButton);
editText.setTypeface(Typeface.SANS_SERIF);
submitButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { lookPwd(flag, editText); flag = !flag; } }); }
boolean flag;
public void lookPwd(boolean hidePwd, EditText et) { if (hidePwd) { et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); et.setTypeface(Typeface.SANS_SERIF); setSelection(et); } else { et.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); et.setTypeface(Typeface.SANS_SERIF); setSelection(et); } }
* 输入框光标一直在输入文本后面 * @param et EditText */ private void setSelection(EditText et) { Editable text = et.getText(); Selection.setSelection(text, text.length()); } }
|
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.qefee.pj.testtypeface.MainActivity">
<EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="12345abc,-" android:inputType="textPassword" android:typeface="sans"/>
<Button android:id="@+id/submitButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="显示/隐藏 密码"/> </LinearLayout>
|