Подтвердить что ты не робот

Есть ли представление для ввода целых чисел в Android?

Я ищу что-то вроде отдельных частей диалога выбора даты. Представление, которое позволяет вводить целые числа (и только целые числа), которые вы можете ограничить (например, от 1 до 10), где вы можете использовать клавиатуру или стрелки в самом представлении. Он существует?

Это для диалога. Также поможет готовый диалог для запроса целого числа.

4b9b3361

Ответ 1

Виджет NumberPicker - это, вероятно, то, что вы хотите. К сожалению, он находится в com.android.internal.Widget.NumberPicker, с которым мы не можем добраться обычными средствами.

Существует два способа его использования:

  • Скопировать код из источника android
  • Использовать отражение для доступа к виджету

Здесь xml для использования в макете:

<com.android.internal.widget.NumberPicker
    android:id="@+id/picker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Здесь отражение для установки параметров NumberPicker (я не тестировал это):

Object o = findViewById(R.id.picker);
Class c = o.getClass();
try 
{
    Method m = c.getMethod("setRange", int.class, int.class);
    m.invoke(o, 0, 9);
} 
catch (Exception e) 
{
    Log.e("", e.getMessage());
}

Поскольку это внутренний виджет, а не в SDK, будущая совместимость может быть нарушена, если вы используете отражение. Было бы безопаснее катиться из источника.

Исходный источник этой информации является общим в Google Group.

Ответ 2

Внутренний виджет NumberPicker был извлечен из исходного кода Android и упакован для вашего использования, и вы можете найти его здесь. Отлично работает!

РЕДАКТИРОВАТЬ. Исходная ссылка недоступна, вы можете найти копию виджета здесь

Ответ 4

Вы можете использовать EditText android:inputType="number"

<EditText android:layout_height="wrap_content" android:id="@+id/editText1" android:inputType="number" android:layout_width="wrap_content"></EditText>