我有一个 EditText
字段,用户只能输入六位数字。当 EditText
获得焦点时,它应该提示用户他只能输入六位数字。
想法是将剩余的数字显示为灰色,如下所示:
当用户输入一个数字时,它看起来像这样:
(红色竖线代表光标。)
在两个图像中,光标不应位于其当前位置之后;灰色数字应该只可见,不应该是可选的。
所以实际上我想设置一个占位符文本,但在用户键入时保留一部分占位符文本。
我从 Design Support 库中了解了 TextInputLayout
类,但我不知道如何实现上述想法。
如何做到这一点?
最佳答案
我只会给你想法,所以实现取决于你。在
中创建您的 TextWatcheronTextChanged()
计算用户输入了多少位数字,并根据这个数字创建用零填充的字符串。之后,使零具有不同的颜色
Spannable textWithTintedZeros = new SpannableString(paddedString);
textWithTintedZeros.setSpan(new ForegroundColorSpan(yourGrey), firstZeroIndex, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
editText.setText(textWithTintedZeros);
最后将选择设置为在零之前
editText.setSelection(indexBeforeFirstZero);
不要忘记阻止更改光标位置。我认为可以用
View.OnKeyListener
关于android - 在 Android 中输入 EditText 时的占位符提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240908/