android - 在 Android 中输入 EditText 时的占位符提示

标签 android

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

想法是将剩余的数字显示为灰色,如下所示:

Hint for remaining digits

当用户输入一个数字时,它看起来像这样:

Hint for remaining digits

(红色竖线代表光标。)

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

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

我从 Design Support 库中了解了 TextInputLayout 类,但我不知道如何实现上述想法。

如何做到这一点?

最佳答案

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

中创建您的 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

关于android - 在 Android 中输入 EditText 时的占位符提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240908/

相关文章:

javascript - 如何将参数传递给 PhoneGap 数据库事务函数

android - "Shake"app随时响应

android - 在 Zxing 中为 QR 码自定义相机 View 和旋转?

android - 如何在android中将屏幕坐标转换为geopoint

android 在 fragment 中隐藏标题

java - 如何验证用户是否有 Google Play 中的最新更新

java - 在 SurfaceView 上加载和显示 jpeg 的最快方法?

android - 开源安卓启动器列表

android - 请求服务许可。安卓中号

Android:如何在首选项屏幕中使用按钮