在Android中的EditText中键入占位符提示

时间:2016-02-06 12:20:43

标签: android

我有一个EditText字段,用户只能输入六位数字。当EditText被聚焦时,它应该提示用户他只能输入六位数。

这个想法是以灰色显示剩余数字,如下所示:

Hint for remaining digits

当用户输入数字时,它显示如下:

Hint for remaining digits

(红色垂直条表示光标。)

光标不应位于两个图像中当前位置的后面;灰色数字应该只是可见的,不应该是可选择的。

所以实际上我想设置占位符文本,但在用户输入时保留占位符文本的一部分。

我从设计支持库中读到了TextInputLayout类,但我不知道如何实现上述想法。

怎么做?

2 个答案:

答案 0 :(得分:2)

我只会给你一个想法,所以实施取决于你。在

中创建TextWatcher
onTextChanged()

计算用户编写的位数,并根据此数字创建用零填充的字符串。在它之后,使零成为不同的颜色

Spannable textWithTintedZeros = new SpannableString(paddedString);
textWithTintedZeros.setSpan(new ForegroundColorSpan(yourGrey), firstZeroIndex, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editText.setText(textWithTintedZeros);

最后将选择设置为零之前

editText.setSelection(indexBeforeFirstZero);

不要忘记阻止更改光标位置。我认为可以用

完成
View.OnKeyListener

答案 1 :(得分:0)

您可以在edittext上添加一个重力正确的TextView。然后在edittext的监听器(ontextchanged)中修改TextView。

我不知道你是否只能使用EditText。