只在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(); } }