安卓软键盘关闭问题详解大全

安卓软件盘关闭的方法还有很多种(再没做这个之前我也只知道方法一!)但是方法一不是我想要的效果 我想退出当前activity的时候如果软件盘打开则关闭,如果软件盘关闭则还是关闭,

ok,我们来看这些可有可无虚无缥缈的文档,卡。。。。。头疼有木有  me too

好多木用的方法啊 CSDN里面会查阅到很多的资料关于关闭软键盘的

经我亲测!都木有用(当然了,弟子才疏学浅,出入师门,也有可能是用的时候环境所致也不好说)

但你他妈也至少说清楚嘛 搞得好像都能用是的 白开心一场。。。。

扯完蛋正式开搞!德玛西亚

杨帆,起航。。。。。。。。。。。。。


这四个方法 方法一是可用的  最坑的就是第四种方法,好多人都写上但我从没看到有哪个说是可以用的,都是否定!(我这里写上,只是说明,如果有知道的大神可以带带小弟我) 其它两种方法 我这亲测了一下也是不行 写上的原因是也许你们的可以呢(我的剑就是你的剑)


1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

  1. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  

 

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)

  1. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);  
  1. imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘   View就是EditText的对象


3、调用隐藏系统默认的输入法

  1. ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是当前的Activity) 
  2. 如果是在fragement中则用getActivity.getSystemService....      getActivity.getCurrentFocus().getWindowToken()


4、获取输入法打开的状态(本方法经测试无效  恒为true)

  1. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
  2. boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开

5、//隐藏软键盘   

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);   

  

6、//显示软键盘,控件ID可以是EditText,TextView   

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID, 0); 

 

7、不自动弹出键盘:

带有EditText控件的在第一次显示的时候会自动获得focus,并弹出键盘,如果不想自动弹出键盘,有两种方法:

方法一:在mainfest文件中把对应的activity设置

android:windowSoftInputMode="stateHidden" 或者android:windowSoftInputMode="stateUnchanged"。

方法二:可以在布局中放一个隐藏的TextView,然后在onCreate的时候requsetFocus。

注意TextView不要设置Visiable=gone,否则会失效

,可以在布局中放一个隐藏的TextView,然后在onCreate的时候requsetFocus

注意TextView不要设置Visiable=gone,否则会失效

<TextView

        android:id="@+id/text_notuse"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:focusable="true"

android:focusableInTouchMode="true"

        />

 

TextView textView = (TextView)findViewById(R.id.text_notuse);

            textView.requestFocus();



该我们了,嗷呜~~

我用了N中方法 都试了最后的解决方法是(EditorText忘记说了 我的是这个控件)

我的EditorText显示出来的时候有去获取焦点(调用

requestFocus()  和 findFocus()接下来我要表演时刻 将他们的血条弄消失

在OnDestroy中 调用

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

然后在退出后 新的 activity的OnResuam 中调用这个(我的是继承了Fragement,getActivity调用)

int flags = WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
getActivity().getWindow().addFlags(flags);

两个一块使用才会有效果 至于你为啥 博主不会告诉你说,我是用了N中方法以后 全都没注释 连试带蒙 瞎猫碰上死耗子强撸出来的 用了一下午四五个小时的时间

官方文档详解参考如下几个:

http://blog.csdn.net/ccpat/article/details/46717573

http://blog.csdn.net/mynameishuangshuai/article/details/51567357


亲爱的大家实在不好意思 本来想好好的总结一下 全面的总结一下 可是今天下午心情糟透了

写不下去啦  这才三分之一  对不住了。。。。。。。。。

为啥?

好吧。。。。。简明扼要

女人啊 犯贱    虽然是我提分手 但我内心也是痛苦的 因为毕竟真心喜欢 可惜换来的是啥  让她后悔去吧!!!!!!!!!!!!!!!!












  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值