gpt4 book ai didi

android - Edittext输入类型密码,清除焦点android后不隐藏文本

转载 作者:搜寻专家 更新时间:2023-11-01 09:32:06 25 4
gpt4 key购买 nike

我正在使用 View 输入用户的四位数 PIN。 UI 由 4 个 edittext 组成,每个 maxLength 设置为 1。在输入值以编辑 text1 时,焦点然后转移到第二个 edittext 等等。每个 Edittext 输入类型是:numberPassword。

<EditText
android:id="@+id/ed_1"
android:layout_width="20dp"
android:layout_height="20dp"
android:gravity="center"
android:inputType="numberPassword"
android:maxLength="1" />

在 java 中,为了转移焦点,我们对每个编辑文本应用了以下文本观察器:

ed1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().length() == 1) {
ed1.clearFocus();
ed2.requestFocus();
ed2.setCursorVisible(true);
}
}

@Override
public void afterTextChanged(Editable s) {

}
});

问题是,edittext 的值没有更改为 *,它显示了真实的输入数字(没有更改为密码)。只有第一个和最后一个更改为 *,其中中间两个表示 edittext 2 和 edittext 3 仍然具有可见密码。

现在:我们有 4 个输入编辑文本

期望的输出应该是:| * | * | * | * |

当我们填充值并切换焦点时,通过使用指定的 java 代码,它们会更改为:(输入值:1234):| * | 2 | 3 | * |

如果我们重新关注其中一个中心编辑文本,则值将更改为密码。是不是因为去掉了焦点,改字段为password的转换时间变长了?有没有什么方法可以强行改成password。

最佳答案

尝试在转换后对前面的文本运行以下代码

yourEditText.setTransformationMethod(new PasswordTransformationMethod());

这是一个困难的方法,但是

String e1,e2,e3,e4; 
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().length() == 1 && !ed1.getText().toString().equals("*")) {
e1=ed1.getText();
ed1.setText("*");
ed2.requestFocus();
ed2.setCursorVisible(true); } }

你可以用这个方法

关于android - Edittext输入类型密码,清除焦点android后不隐藏文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46232350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com