禁用Android TimePicker上的键盘输入

禁用Android TimePicker上的键盘输入,android,Android,我正在使用1.6SDK开发Android应用程序。我使用的是计时器,当你点击计时器中的数字时,我不希望软键盘出现。我只希望使用加号和减号按钮更改时间选择器。我曾尝试使用android:focusableInTouchMode=“false”和android:focusableInTouchMode=“false”希望它们能做到这一点,但它们似乎什么也没做。有办法吗?您可以这样做: InputMethodManager imm = (InputMethodManager) getSyst

我正在使用1.6SDK开发Android应用程序。我使用的是
计时器
,当你点击
计时器
中的数字时,我不希望软键盘出现。我只希望使用加号和减号按钮更改
时间选择器
。我曾尝试使用
android:focusableInTouchMode=“false”
android:focusableInTouchMode=“false”
希望它们能做到这一点,但它们似乎什么也没做。有办法吗?

您可以这样做:

    InputMethodManager imm = 
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
请同时参考这一问题:

尝试使用:

myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);

要禁用对内部NumberPickers的文本视图的聚焦,这对EditText控件也不起作用。。。如果按住EditText上的菜单键,在该文本上设置了
InputType.TYPE\u NULL
并调用
immhideSoftInputFromWindow(…)
,则软键盘仍会弹出,同时显示复制/粘贴菜单选项。

不知道这是否适用于时间选择器,但我找到了正确的参数,用于在聚焦编辑文本或在内容上使用复制粘贴菜单时防止键盘显示:

首先,您应该在
editText
上调用
setInputType(InputType.TYPE\u NULL)

接下来实例化InputTypeManager:

InputMethodManager imm = 
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
然后,在
imm
对象上调用
hideSoftInputFromWindow()
,但使用
InputMethodManager.HIDE\u不总是作为第二个参数而不是0(如第一个答案中所建议的):

这将防止在单击/聚焦此EditText控件时弹出软键盘,即使在使用菜单键执行复制/粘贴操作时也是如此

PS:如果您想阻止复制/粘贴操作,可以调用editText.setEditable(false)
,但是您将无法动态更改editText的内容。

我刚刚尝试过(目标为4.0.3)

没有成功。在谷歌搜索“安卓时间选择器BLOCK_后代不工作”后,我跟踪了搜索结果

http://code.google.com/p/android/issues/detail?id=38369
如果最后一个职位由“项目成员”担任,则表示:

“子体聚焦性是指视图的对焦能力,如使用键盘、轨迹球或d-pad进行对焦遍历。它不会通过设计影响触摸事件

如果需要从子视图中阻止触摸事件,请考虑在父视图中重写OnTractTouCuError并在阻止触摸事件时返回true。这将导致MOMOTION事件被发送到截取的父类,直到最后一个指针上升。“

< P>在XML中添加:

android:descendantFocusability="blocksDescendants"
在查找要聚焦的视图时,定义视图组及其子体之间的关系。

XML:

<NumberPicker
    ...
    android:descendantFocusability="blocksDescendants" />


这不适用于计时器选择器。我以前用编辑文本做过。另外,我不只是想要一种隐藏软键盘的方法,而是基本上让时间选择器中的编辑文本永远不会有焦点。我只希望使用加号和减号按钮更改值,我不希望用户能够单击数字所在的区域并出现光标。我一直在试图找出如何获得时间选择器中那些孩子的引用来完成此操作…但我不知道如何。PS:这是指上一篇关于使用InputMethodManager的帖子,对不起,我是想使用“反馈”按钮!!这也适用于DatePicker,只需使用DatePicker.FOCUS\u BLOCK\u子体即可。只需使用ViewGroup.FOCUS\u BLOCK\u子体即可。。它们都有相同的值-_-'您也可以在xml中使用android:genderantfocusability=“blocksDescendants”。这个答案应该得到更多的支持,因为它解决了xml本身的问题
android:descendantFocusability="blocksDescendants"
<NumberPicker
    ...
    android:descendantFocusability="blocksDescendants" />