Android 需隐藏系统软键盘,但是要显示光标

angel19880827 2012-10-26 10:10:37
android, EditText中,用setInputType(InputType.TYPE_NULL)隐藏系统软键盘后,但是光标也没有了,如何再让光标显示出来。各位大神帮帮忙啊。
edit = (EditText) view1.findViewById(R.id.edit);
edit.setInputType(InputType.TYPE_NULL);
edit.setCursorVisible(true);
edit.setLongClickable(false);
edit.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//调用自己自定义键盘
});
...全文
3020 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingyunxinchen 2015-07-01
  • 打赏
  • 举报
回复
13楼的大神 赞
sincerehui 2014-12-17
  • 打赏
  • 举报
回复 1
13楼 你主要是这句话起的作用吧!getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);@
android_xc 2014-12-12
  • 打赏
  • 举报
回复
13楼的可以,困扰了一天终于解决了
Quartzhao 2014-11-23
  • 打赏
  • 举报
回复
楼上的楼上 是大神啊,解决了困扰我几天的问题。
飞龙在天_David 2014-10-10
  • 打赏
  • 举报
回复
光标不闪啊,哥们
程序猿小爱 2014-09-16
  • 打赏
  • 举报
回复
13楼方法对的!
evilotus 2014-09-04
  • 打赏
  • 举报
回复
网上的代码都是说 4.0 以上用 setShowSoftInputOnFocus 这个方法,然而代码里都写的是 SDK_INT>10 这让我很奇怪,4.0不是14嘛? 我查了半天才明白,原来4.0的函数名是 "setSoftInputShownOnFocus", 4.2后又改成了"setShowSoftInputOnFocus" 我最后是这么做的

        // 隐藏系统键盘
	public void hideSoftInputMethod(EditText ed){
		getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
		
		int currentVersion = android.os.Build.VERSION.SDK_INT;
		String methodName = null;
		if(currentVersion >= 16){
			// 4.2
			methodName = "setShowSoftInputOnFocus";
		}
		else if(currentVersion >= 14){
			// 4.0
			methodName = "setSoftInputShownOnFocus";
		}
		
		if(methodName == null){
			ed.setInputType(InputType.TYPE_NULL);  
		}
		else{
            Class<EditText> cls = EditText.class;  
            Method setShowSoftInputOnFocus;  
            try {
				setShowSoftInputOnFocus = cls.getMethod(methodName, boolean.class);
				setShowSoftInputOnFocus.setAccessible(true);  
	            setShowSoftInputOnFocus.invoke(ed, false); 
			} catch (NoSuchMethodException e) {
				ed.setInputType(InputType.TYPE_NULL);
				e.printStackTrace();
			} catch (IllegalAccessException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IllegalArgumentException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}  
		}  
	}
evilotus 2014-09-01
  • 打赏
  • 举报
回复
上面的方法没一个顶用的。。。
zyxNobita 2014-08-18
  • 打赏
  • 举报
回复
http://www.tuicool.com/articles/ARfEFj 加上 Activity的配置属性 android:windowSoftInputMode="stateHidden"
huaihuaidexiao 2014-05-28
  • 打赏
  • 举报
回复
试试这个方法 public void hideSoftInputMethod(EditText ed){ if (android.os.Build.VERSION.SDK_INT <= 10) { ed.setInputType(InputType.TYPE_NULL); } else { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); try { Class<EditText> cls = EditText.class; Method setShowSoftInputOnFocus; setShowSoftInputOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class); setShowSoftInputOnFocus.setAccessible(true); setShowSoftInputOnFocus.invoke(ed, false); } catch (Exception e) { e.printStackTrace(); } } }
Alex老夫子 2013-05-08
  • 打赏
  • 举报
回复
你们说的这些方法都不行哦
android_nihao 2013-04-25
  • 打赏
  • 举报
回复
在AndroidManifest.xml文件中找到你当前的Activity加上 <activity android:name="xxx" android:windowSoftInputMode="adjustPan" />
Android问题哥 2013-04-25
  • 打赏
  • 举报
回复
LZ, 你的edittext问题解决了。 我现在遇到与你一样的问题
apple3 2013-04-02
  • 打赏
  • 举报
回复
除了这个方法还有没有其它办法呢?不太会源码编译。
blueflo 2013-03-21
  • 打赏
  • 举报
回复
RE:s5miss 3.0以下版本可以用editText.setInputType(InputType.TYPE_NULL)来实现。3.0以上版本除了调用隐藏方法:setShowSoftInputOnFocus(false),我还没发现其他方法实现。
s5miss 2013-02-19
  • 打赏
  • 举报
回复
那在xp下的eclipse里,怎么搞啊?要隐藏键盘,但是显示光标!
blueflo 2012-12-21
  • 打赏
  • 举报
回复
今天终于解决了这问题,4.0上不能用setInputType(InputType.TYPE_NULL)方法隐藏输入法,用系统的隐藏方法,editText..setShowSoftInputOnFocus(false), 这样可以隐藏输入法且有光标,真心好用。 在eclipse里编译会报错,源码下编译就没问题了。能帮上忙给分哈
fddcxs 2012-12-21
  • 打赏
  • 举报
回复
给力肯定要给分
angel19880827 2012-10-26
  • 打赏
  • 举报
回复
有木有 会的大神啊 要是真能解决分可以再加的啊

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧