Показывать только числовые кнопки на Soft Keyboard в Android?

На мягкой клавиатуре в Android вы можете настроить мягкую клавиатуру, чтобы показывать цифры вместо клавиатуры az, используя android:inputType="numberDecimal" . Однако, что мне делать, если я хочу показать только верхнюю строку номера 1 2 3 4 5 6 7 8 9 0 а не следующие строки, начинающиеся с @ # $ % ... ?

Thanx для прослушивания!

Solutions Collecting From Web of "Показывать только числовые кнопки на Soft Keyboard в Android?"

Вы должны добавить эту строку только в свой код:

 input.setRawInputType(Configuration.KEYBOARD_12KEY); 

Это покажет только цифровую клавиатуру.

 android:inputType="phone" android:digits="1234567890" 

Является вариантом

Телефонная клавиатура – это самая близкая вещь, которую я нашел (задайте inputType="phone" на вашем EditText ).

Последнее, что я просмотрел, у Android не было никаких хороших вариантов для этого. В итоге мне пришлось написать собственную версию пользовательского интерфейса с клавиатурой.

Просто выложил здесь ответ, но переиздание для простоты:

Похоже, Android добавил функциональность, которую мы искали. Это xml, который я использую для простой цифровой записи EditText:

  android:inputType="numberPassword" android:digits="0123456789" android:singleLine="true" android:ems="4" android:textColor="@android:color/black" android:gravity="center" 

Я реализовал это для android в Xamarin. Итак, мой код находится на C #. Но главный остается тем же. Вы можете установить атрибут edittext для 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(); } }