Android号码选择器键盘类型

时间:2013-05-28 13:31:19

标签: android

我有一个EditText,点击它时会创建一个包含数字选择器的AlertDialog。我想让用户选择滚动数字选择器,也可以通过键盘输入值。但是当我点击数字选择器的值时,我不知道如何为NumberPicker设置当前全键盘显示的键盘类型。

我知道EditText你可以做editText.setInputType,但是对于NumberPicker呢?


这是我的对话框xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:holo="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal" >

<NumberPicker
    android:id="@+id/numberPicker1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"/>
</LinearLayout>

我不想设置编辑文本的输入类型。我想设置数字选择器的输入类型。单击编辑文本时,会创建一个包含数字选择器的对话框。它是我想要设置输入类型的数字选择器。

2 个答案:

答案 0 :(得分:1)

默认情况下,NumberPicker现在使用inputType="number" 除非 设置displayedValues,这会将键盘恢复为完整模式,因为显示的值为{ {1}}。

在某些用例中,您可能希望覆盖此行为,例如如果您的值是非连续数字(0,5,10等)或浮点数(1.0,1.5等)。这是基于this question的解决方案:

String[]

...或...

// Java
private void setInput(ViewGroup vg) {
    for(int i = 0; i < vg.getChildCount(); i++) {
        View child = vg.getChildAt(i);
        if(child instanceOf ViewGroup) {
            // Recurse
            setInput((ViewGroup) child);
        } else if(child instanceOf EditText) {
            // Force InputType
            ((EditText) child).setInputType(InputType.TYPE_CLASS_NUMBER);
        }
    }
}

答案 1 :(得分:-3)

只需写入xml文件: -

inputType="number"