您应该为 TextView 使用InputFilter并验证输入是否为 Time 类型。
因为 TimeKeyListener 也实现了一个 InputFilter。
你可能会使用
TextView.setInputFilter({new TimeKeyListener()});
编辑:或者你甚至可以自定义时间键监听器。作为公认的角色
edittext.setKeyListener(new TimeKeyListener() {
public final char[] CHARS = new char[] {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'm', 'p', ':', '.'
};
@Override
protected char[] getAcceptedChars() {
return CHARS;
}
});
现在用冒号替换备用分隔符(点)也很容易,如下所示:
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
final CharSequence superSource = super.filter(source, start, end, dest, dstart, dend);
final CharSequence prefilteredSource = superSource!=null ? superSource : source;
return prefilteredSource.toString().replace('.', ':');
}