Есть ли представление для ввода целых чисел в Android? - PullRequest
22 голосов
/ 07 февраля 2009

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

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

Ответы [ 4 ]

23 голосов
/ 07 февраля 2009

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

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

  1. Скопируйте код из источника Android
  2. Использовать отражение для доступа к виджету

Вот 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 .

7 голосов
/ 16 мая 2010

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

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

4 голосов
/ 01 февраля 2012

Как уже упоминалось в другом месте , NumberPicker теперь доступен в Android SDK с API 11 (Android 3.0):

http://developer.android.com/reference/android/widget/NumberPicker.html

Для Android <3.0 вы можете использовать код здесь: <br> https://github.com/novak/numpicker-demo
https://github.com/mrn/numberpicker

0 голосов
/ 19 декабря 2012

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

<EditText android:layout_height="wrap_content" android:id="@+id/editText1" android:inputType="number" android:layout_width="wrap_content"></EditText>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...