Android号码选择器键盘types

我有一个EditText,当点击时创建一个AlertDialog,其中包含一个数字选择器。 我想让用户选择滚动数字选择器,并通过键盘输入一个值。 但是我不知道如何设置NumberPicker的键盘types,当点击数字选择器的值时,全键盘显示。

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


这里是我的对话框xml:

   

我不想设置编辑文本的输入types。 我想设置数字选择器的输入types。 点击编辑文本时,会创建一个对话框,其中包含一个数字选择器。 它的数字选择器,我想设置输入types。

默认情况下,NumberPicker现在使用inputType="number"除非您设置了displayedValues ,由于显示的值是String[] ,所以将键盘恢复为完整模式。

在一些使用情况下,您可能希望覆盖此行为,例如,如果您的值是非连续数字(0,5,10等)或浮点数(1.0,1.5等)。 这里有一个基于这个问题的解决方案:

 // 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); } } } 

...要么...

 // Kotlin private fun setInput(vg: ViewGroup) { (0..vg.childCount).map { vg.getChildAt(it) }.forEach { when (it) { is ViewGroup -> setInput(it) // recurse is EditText -> it.inputType = InputType.TYPE_CLASS_NUMBER } } } 

只需在xml文件中写入:

 inputType="number"