【Android】多个EditText设置其中一个不可编辑并隐藏键盘

最近在搞Android开发,慢慢地也记录一些开发中遇到的问题吧。

问题描述:

当界面中有多个EditText时,系统弹出的软键盘的确认键会显示"Next"这样可以方便用户快速进行内容的填写。但是现在的需求是,比如有2个EditText,第2个EditText不允许用户编辑,而是要显示一些hint类的文字上去。当然你可以把第2个EditText换成label,但是我们今天想要解决的是,如何在焦点到第2个EditText的时候把键盘隐掉。

无论是在XML文件中设置focus为false,还是在代码中设置enable为false,都没有办法。似乎只要监测到界面有多个EditText,键盘就会显示NEXT,然后点击NEXT之后,键盘就没办法隐去了。 

所以使用的是一个比较tricky的办法,当EditText获取到焦点事件时,强制隐藏键盘。

先上代码吧:

editText.setOnKeyListener(new OnKeyListener() {
			public boolean onKey(View v, int keyCode, KeyEvent event) {
				if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) {
					// 隐藏键盘
					InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
					imm.hideSoftInputFromWindow(recharge_money.getWindowToken(), 0);
					return true;
				}
				return false;
			}
		});

editText是我们上面举的例子中的第2个EditText,设置它的OnKeyListener的method,然后当监听到相应的事件时,强制执行隐藏键盘的动作。

之所以说这种方法是比较tricky的办法,因为它有缺陷,比如你的界面中还有多余的EditText,那么当你焦点到第2个时候,键盘就被强制隐去了,用户必须继续手动点击第3个键盘才ok;另外,如果只有2个EditText,在第一个为焦点时,键盘显示的依旧是Next,而不是理想情况下的OK或者GO等内容。

时间: 2024-11-03 07:40:19

【Android】多个EditText设置其中一个不可编辑并隐藏键盘的相关文章

长按复制粘贴-Android中长按textView弹出一个复制,editText长按弹出粘贴等等

问题描述 Android中长按textView弹出一个复制,editText长按弹出粘贴等等 Android中长按textView弹出一个复制,editText长按弹出粘贴等等这个是怎样做的,求大神解答! 解决方案 android:textIsSelectable=""true""在部分手机上不管用,你试试下面这个textview.setOnLongClickListener(new View.OnLongClickListener() { @Override pu

Android中EditText 设置 imeOptions 无效问题的解决方法_Android

有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Android:imeOptions的值有actionGo. actionSend .actionSearch.actionDone等 但是今天我发现设置了无效  那是因为我设置了 android:maxLines="1" 解决方法 就是去掉 android:maxLines="1"

Android 依赖EaseUI如何改变环信默认的通知Icon,我尝试设置了一个本地的图片失败了? 应该怎么设置呢

问题描述 Android 依赖EaseUI如何改变环信默认的通知Icon,我尝试设置了一个本地的图片失败了? 应该怎么设置呢 解决方案 看下DemoHelper这个类中的 easeUI.getNotifier().setNotificationInfoProviderpublic int getSmallIcon(EMMessage message) { //设置小图标,这里为默认 return 0; } 这个return 0的地方改成具体的drawable资源的id就可以了.

android程序我设置了一个横屏的布局,怎么才能让他在真实手机上横屏

问题描述 android程序我设置了一个横屏的布局,怎么才能让他在真实手机上横屏 横屏程序设置完了,不知道怎么在真实手机上横屏,求各位大神解惑 解决方案 在AndroidManifest 文件中申明 Activity时 android:name="activity" android:screenOrientation="landscape" /> 解决方案二: 有关android中横屏和竖屏的设置android 设置默认的横屏 解决方案三: 在xml和Acti

Android中Edittext设置输入条件

一.应用场景 之前做商城应用时,会有对用户资料的设置情况进行限制,如下: (1)用户邮箱,应当只允许输入英文字母,数字和@.两个符号, (2)用户手机,应当只能输入数字,禁止输入其他字符. (3)用户密码,应当不能输入空格以及中文字符等. 二.解决方案 针对用户邮箱以及用户手机,有以下两种解决方案: (1)EditText中的android:digits属性: 它表示EditText能够接受的字符集合.通过配置此属性,就可以实现只允许输入指定的字符.这里列举上述三种场景下的android:dig

Android中EditText 设置 imeOptions 无效问题的解决方法

有时候我们需要在EditText  输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Android:imeOptions的值有actionGo. actionSend .actionSearch.actionDone等 但是今天我发现设置了无效  那是因为我设置了 android:maxLines="1" 解决方法 就是去掉 android:maxLines="1"

Android RadioGroup 设置某一个选中或者不可选中的方法

如题目的要求,可以参考如下代码: public void generAeidLength(RadioGroup radGroup) { if (ClientAPI.getAeid().length() == 10) { System.out.println(ClientAPI.getAeid()); type_kyc.getChildAt(1).setEnabled(false); } else { System.out.println(ClientAPI.getAeid()); type_ky

android alerdialog-我设置了一个AlertDialog,他又两个按钮,但是为什么只显示cancel呢,部分代码如下

问题描述 我设置了一个AlertDialog,他又两个按钮,但是为什么只显示cancel呢,部分代码如下 我设置了一个AlertDialog,他又两个按钮,但是为什么只显示cancel呢,部分代码如下 解决方案 方法用错了,两个按钮都是positive 解决方案二: 有个negative 解决方案三: dialog上面的按钮有三种,积极的消极的和中立的,其实都是新建一个按钮,不过同一种按钮如果设置多次,后面的会把前面的覆盖掉. 还有,你的toast忘了show()了 解决方案四: 哈哈.方法名一

Android文本输入框EditText方法说明和属性

1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置:  把该EditText设为:android:password="true" // 以"."形式显示文本 (2)在代码里设置: 通过设置EditText的setTransformationMethod()方法来实现隐藏密码或这显示密码. editText.setTransformationMethod(PasswordTransformationMethod.getInstance());//