犀渠玉剑良家子,白马金羁侠少年。这篇文章主要讲述如何为特定活动禁用Android Soft Keyboard?相关的知识,希望能为你提供帮助。
我有一个EditText活动,我只需要输入数字。
现在,我已经将EditText的输入类型定义为仅限数字,并为我的用户绘制了一个漂亮的键盘,但是我还需要确保在用户点击时不会弹出软键盘EditText。
我试图通过添加隐藏键盘通过清单
android:windowSoftInputMode="stateAlwaysHidden"
在我的Manifest中针对特定活动,但这对我不起作用,因为只要用户点击EditText,键盘就会再次出现。
我尝试过以编程方式执行相同操作
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
但这也不起作用。用户单击EditText时会出现键盘。
唯一有效的方法是将EditType的InputType设置为null,如下所示:
EditText.setInputType(InputType.TYPE_NULL);
但我不能使用它,因为它允许键盘连接到他们设备的用户在EditText字段中输入字母和其他符号,而我希望每个人都专门使用键盘在字段中输入数据。
我还应该提一下,我目前正在Android 2.1下测试我的应用程序,但我希望我的解决方案适用于所有版本。任何帮助,将不胜感激。提前致谢。
答案只是认为可以扩展EditText并通过那里处理对软键盘的访问,并遇到this question,它有一个非常优雅的解决方案来解决我的问题。
只需按照步骤操作即可完美地处理软键盘。希望它可以帮助其他人遇到这个问题。
另一答案在您需要禁用软键盘的任何Edittext中,在该编辑文本的xml中添加属性。
<
EditText android:id=".."
..
android:focusable="false" />
它将停止软键盘的执行。
另一答案在清单文件中的活动中使用
android:windowSoftInputMode="stateHidden"
。这会奏效。除非您不愿意输入文本,否则不要对EditText使用android:focusable =“false”。如果要提供输入,则删除布局文件中edittext的该属性。另一答案如果您使用的是ViewGroup,它允许您使用此方法阻止软键盘:
view.setDescendantFocusability(view.FOCUS_BLOCK_DESCENDANTS);
由于这一点,视图将在其任何后代之前得到关注。
另一答案你可以试试这个。它对我有用:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
另一答案【如何为特定活动禁用Android Soft Keyboard()】你可以使用这个代码:
<
EditText
.
.
android:enabled="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:inputType="numberPassword" />
推荐阅读
- 没有标签视图使用android(labelFor =“@ + id / @ + id /”属性指向此文本字段)
- 如何连续删除键盘退格键上的字符长按android
- android如何将EditText光标设置为其文本的末尾[复制]
- SetEditable在最新的Android版本中不起作用
- Android EditText Capital Characters
- Android(TextInputLayout不同inputTypes的不同间距)
- 如何在android中显示密码开/关模式的切换按钮
- 笔画没有应用于矩形到xml drawable用作android中的edittext背景
- 在Android中滚动recyclelerview时,Edittext值消失