只在Android软键盘上显示数字button?
在Android的软键盘上,您可以使用android:inputType="numberDecimal"
来设置软键盘来显示数字,而不是使用az键盘。 但是,如果我只想显示顶部数字行1 2 3 4 5 6 7 8 9 0
,而不是以@ # $ % ...
开始的以下行,该怎么办?
谢谢!
你只能在你的代码中添加这一行:
input.setRawInputType(Configuration.KEYBOARD_12KEY);
这将只显示数字键盘。
android:inputType="phone" android:digits="1234567890"
是一个选项
inputType="phone"
是我发现的最接近的东西(在EditText
上设置inputType="phone"
)。
最后,我研究了一下,Android没有任何好的select。 我最终不得不编写自己的软键盘式用户界面。
刚刚在这里发表了一个答案,但为简单起见重新张贴:
似乎Android已经添加了我们正在寻找的function。 这是我用于简单的EditText数字input的XML:
android:inputType="numberPassword" android:digits="0123456789" android:singleLine="true" android:ems="4" android:textColor="@android:color/black" android:gravity="center"
我在Xamarin中为android实现了这个。 所以,我的代码是在C#中。 但校长保持不变。 您可以将edittext的属性设置为android:inputType="numberPassword"
numberPassword android:inputType="numberPassword"
。
然后在您的代码中,将自定义转换方法附加到您的edittext视图。
holder.edtxtQty.TransformationMethod = new HiddenPasswordTransformationMethod(); private class HiddenPasswordTransformationMethod : global::Android.Text.Method.PasswordTransformationMethod { public override Java.Lang.ICharSequence GetTransformationFormatted(Java.Lang.ICharSequence source, View view) { return new PasswordCharSequence(source); } } private class PasswordCharSequence : Java.Lang.Object, Java.Lang.ICharSequence { private char DOT = '\u2022'; private Java.Lang.ICharSequence _source; public PasswordCharSequence(Java.Lang.ICharSequence source) { _source = source; } public char CharAt(int index) { return _source.CharAt(index); } public int Length() { return _source.Length(); } public Java.Lang.ICharSequence SubSequenceFormatted(int start, int end) { return _source.SubSequenceFormatted(start, end); // Return default } public IEnumerator<char> GetEnumerator() { return _source.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return _source.GetEnumerator(); } }