在我的应用我有EditText
。 我希望用户能够插入只有数字和由我指定的两个字符。 我知道存在android:digits="..."
,而是因为我这两个字从上下文中得到我不能使用此。 现在我写的KeyListener:
public class CurrencyKeyListener implements KeyListener {
@Override
public void clearMetaKeyState(View view, Editable content, int states) {
// TODO Auto-generated method stub
}
@Override
public int getInputType() {
return InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL;
}
@Override
public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {
return false;
}
@Override
public boolean onKeyOther(View view, Editable text, KeyEvent event) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
CharFormatter charFormatter = new CharFormatter(view.getContext());
char pressedKey = (char) event.getUnicodeChar();
if (Character.isDigit(pressedKey) || pressedKey == currencyFormatter.getDecimalSeparator()
|| pressedKey == currencyFormatter.getGroupingSeparator()) {
return false;
}
return true;
}
}
当然,它不工作,我不知道如何解决。 该监听块像清除按钮许多重要的角色,并允许输入的字符,我不希望允许。 然后在一些随机的时刻,它会阻止我的整个键盘。
有谁知道如何正确地写这个的KeyListener? 提前致谢。