我有,你有同样的问题,只是一个解决方案来了,也许它不是优雅,也不是它的简单,但它的工作灿烂......
首先,唯一的inputType那与该键盘一起工作(至少直到4.3)是“numberPassword”,但是这个“隐藏”你的输入点。所以我用这个转换方法输入:
private class ShowNumbersTransformationMethod implements TransformationMethod {
public CharSequence getTransformation(final CharSequence charSequence, final View view) {
return new PassCharSequence(charSequence);
}
@Override
public void onFocusChanged(final View view, final CharSequence charSequence, final boolean b, final int i,
final Rect rect) {
//nothing to do here
}
private class PassCharSequence implements CharSequence {
private final CharSequence charSequence;
public PassCharSequence(final CharSequence charSequence) {
this.charSequence = charSequence;
}
@Override
public char charAt(final int index) {
return charSequence.charAt(index);
}
@Override
public int length() {
return charSequence.length();
}
@Override
public CharSequence subSequence(final int start, final int end) {
return new PassCharSequence(charSequence.subSequence(start, end));
}
}
}
,然后将其设置为您的EditText:现在
edittext.setTransformationMethod(new ShowNumbersTransformationMethod());
,正如前面所说,这不是最幸福的解决方案,但我向你保证,奇迹般有效。创建自己的自定义键盘要容易10倍,但是,我没有这个选项,因为我的客户想要标准键盘,天知道为什么...
希望它有帮助!
setRawInputType(Configuration.KEYBOARD_12KEY)给你什么? – yarian 2013-02-26 21:51:10
发布更新了截图。 – AKh 2013-02-26 21:56:42