使用inputType =" none"以编程方式将文本设置为密码

时间:2014-04-03 07:10:33

标签: android android-edittext

我正在开发一个自定义小键盘,它按照以下方式设置特定Edittext的文本

myEditText .setText("myText");

但是我想把这个文本设置为密码(用“。”掩盖)比普通文本,我已经设置了

android:password="true"

并防止软键盘出现在edittext焦点

android:inputType="none"

myEditText.setInputType(InputType.TYPE_NULL);

但仍然在editttex中获得正常文本。

4 个答案:

答案 0 :(得分:0)

使用android:inputType="textPassword"

例如:

        <EditText
            android:id="@+id/pwdTV"
            android:layout_width="wrap_content"
            android:layout_height="30dp"           
            android:drawableLeft="@drawable/password_icon"
            android:drawablePadding="8dp"
            android:ems="10"
            android:hint=" Password"
            android:inputType="textPassword"
            android:paddingLeft="10dp" >
        </EditText>

隐藏键盘使用代码:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if(getCurrentFocus()!=null)
    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

答案 1 :(得分:0)

xml

中使用此功能
<EditText
        android:clickable="false" 
        android:cursorVisible="false" 
        android:focusable="false" 
        android:focusableInTouchMode="false">
</EditText>

edittext.setKeyListener(null);

答案 2 :(得分:0)

仅适用于遇到同样问题的人。只需以编程方式为该EditText添加一个额外的属性即可。

password.setInputType(InputType.TYPE_CLASS_TEXT | inputType.TYPE_TEXT_VARIATION_PASSWORD);

此外,请确保光标位于edittext中文本的末尾。因为,当您更改输入类型时,光标将自动设置为起点。所以我宁愿建议使用以下代码。

et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
et_password.setSelection(et_password.getText().length());

答案 3 :(得分:0)

使用android:hint=" none",例如:

 <EditText
            android:id="@+id/password"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"    
            android:hint=" none"
            android:inputType="textPassword"
            android:paddingLeft="10dp" >
        </EditText>