安卓密码框、EditText

目录

1. 基础使用

2. 密码的展示与隐藏

(1) 使用setTransformationMethod方法

(2) 使用setInputType方法

3. imeOptions属性

4. 单行设置

5. 焦点位置


在安卓中使用密码框普遍采用EditText设置inputType="textPassword"的方式。

1. 基础使用

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入密码" 

    android:inputType="textPassword" 

    android:maxLines="1"

    android:imeOperation="actionDone" 或  android:imeOperation="actionNext"
    />

2. 密码的展示与隐藏

密码的展示与隐藏有两种方法,setTransformationMethod(设置变化方法)方法setInputType方法;请注意,如果设置了android:hint属性(即提示),使用setInputType方法会导致hint的字体变化推荐使用setTransformationMethod方法

(1) 使用setTransformationMethod方法

// 密码可见
passwordET.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
 
// 密码隐藏
passwordET.setTransformationMethod(PasswordTransformationMethod.getInstance());

(2) 使用setInputType方法

// 密码可见
passwordET.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
 
// 密码隐藏
passwordET.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);

3. imeOptions属性

imeOptions 是 Android 中 EditText 的一个属性,用于指定软键盘的行为。它控制键盘右下角的“Enter”或“Done”按钮的显示文本以及按下该按钮时的行为。请注意,设置该属性一定要设置inputType属性,否则无效。

属性值可为:

actionDone:显示 "Done" 按钮。适用于单行输入,表示用户输入完成。

actionGo:显示 "Go" 按钮。适用于搜索框,表示用户已输入完毕并希望执行搜索操作。

actionSearch:显示 "Search" 按钮。适用于搜索框,表示用户已输入完毕并希望执行搜索操作。 

actionSend:显示 "Send" 按钮。适用于消息输入框,表示用户已输入完毕并希望发送消息。

actionNext:显示 "Next" 按钮。适用于多行输入,表示用户希望移动到下一个输入框。

4. 单行设置

为避免出现多行,可进行单行设置。

建议与imeOperation属性一起使用,将回车键替换!!!

//最大行数(推荐)
android:maxLines="1"

//单行(已淘汰)
android:singleLine="true"

5. 焦点位置

如果想焦点自动出现在字符串末尾,可以设置焦点改变监听器,在编辑框得到焦点时使用 .setSelection( int index ) 方法设置焦点位置。

//工具类
public class EditTextUtils {
    /**
     * 设置EditText焦点出现在末尾
     * @param editTexts N个EditText
     */
    public static void setFocusAtLast(EditText ...editTexts){
        for(int i=0;i<editTexts.length;i++){
            EditText editText=editTexts[i];
            editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                public void onFocusChange(View view, boolean b) {
                    if(b){
                        EditText editText=(EditText) view;
                        editText.setSelection(editText.getText().length());
                    }
                }
            });
        }
    }
}

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值