Ответ 1
Вы должны добавить эту строку только в свой код:
input.setRawInputType(Configuration.KEYBOARD_12KEY);
будет отображаться только цифровая клавиатура.
На мягкой клавиатуре в Android вы можете настроить мягкую клавиатуру для отображения чисел вместо клавиатуры z-z, используя android:inputType="numberDecimal"
. Однако, что мне делать, если я хочу показать строку верхнего номера 1 2 3 4 5 6 7 8 9 0
, а не следующие строки, начиная с @ # $ % ...
?
Thanx для прослушивания!
Вы должны добавить эту строку только в свой код:
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. Итак, мой код находится на С#. Но главный остается неизменным. Вы можете установить атрибут 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();
}
}