我有一个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>
我不想设置编辑文本的输入类型。我想设置数字选择器的输入类型。单击编辑文本时,会创建一个包含数字选择器的对话框。它是我想要设置输入类型的数字选择器。
答案 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"