【发布时间】:2015-05-05 16:52:01
【问题描述】:
所以,我希望用户在 EditText 中写入两个除以该符号“:”的数字。我已经在这个 EditText 中添加了 TextWatcher,所以我可以看到用户正在输入什么。
因此,这就是我在 afterTextChanged 中的 Watcher 中的内容。
@Override
public void afterTextChanged(Editable s)
{
String textToEdit = s.toString();
if (s.length()==2)
{
String h = s.toString();
h = h+":";
edit.setText(h);
edit.setSelection(edit.getText().length());
}
}
当用户输入超过 2 位数字时,我在 EditText 中添加“:”。
这里我有问题。 此 EditText 的输入类型为“数字”, 所以,只有数字可以在那里,“:”不是数字。
小例子: 用户输入 24。afterTextChanged 得到它并添加集合“24:”。 24 是一个数字,“24:”是一个字符串。
所以,现在我有了“24:”,当我尝试从 EditText 中删除某些内容时,我得到了致命错误。
还有其他方法可以在我的 EditText 中显示“:”吗?还是我做错了什么?
【问题讨论】:
-
我不确定它是否会起作用,但请尝试
android:digit="1234567890:" -
您是否只想让时间?也许使用
android:inputType="time"可以解决问题 -
不幸的是,不,这是速度(跑步者应用)@Javier
-
那你最好实现某种自定义过滤器或观察器:stackoverflow.com/questions/3961960/…