【移动开发】 Android隐藏输入法软键盘的一些说明
刚刚在写一个仿微信的Android聊天软件,在编写的过程中,发现一个严重的BUG---当用户点击输入框用软键盘输入文本的时候点击了"返回好友列表"的按钮,返回到好友列表时软键盘无法关闭.
于是我才上网找了一些关于Android如何隐藏输入法的网页看了一下.发现普遍的方法如下:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).
hideSoftInputFromWindow(MyActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
MyActivity是当前的Activity
当时当我将代码加入到返回按钮的点击事件后发现,当用户点击了返回按钮时,App异常退出,也没有报错.这是为什么呢?于是我查询了一下Android开发官网.发现实现以上功能的代码应该这样写:
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).
hideSoftInputFromWindow(editview.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
editview是输入框
之所以用第二段代码能够实现所需功能,是因为第二段代码是关闭整队输入框的输入法.而第一段代码针对的是整个Acitivity.而实际条件下输入法是在输入框获得焦点时打开的.而不是在Activity全局打开的,所一第一段代码无法起效,而且会异常退出.
当然在某些游戏中用到的输入法软键盘也许是针对Activity全局打开的.所以在用关闭软键盘的代码时一定要注意,关闭之前是哪个控件触发的软键盘还是Activity触发的软键盘
http://jingyan.baidu.com/article/f79b7cb35c71439144023eca.html
【移动开发】 Android隐藏输入法软键盘的一些说明的更多相关文章
- 【转】Android点击空白区域,隐藏输入法软键盘
原文网址:http://www.2cto.com/kf/201505/401382.html 很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步 ...
- Android 隐藏输入软键盘
//隐藏输入键盘 ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(BshTo ...
- Android 隐藏关闭软键盘
直接复制代码就可以用 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVI ...
- Android 监听软键盘按键的三种方式
前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“Go”按键加载url页面:在点击搜索框的时候,点击右下角的searc ...
- android制,点击EditText时刻,隐藏系统软键盘,显示光标
由于项目中要用自己定义的随机键盘,所以必须得屏蔽系统软键盘,可是在4.0的測试系统来看,使用editText.setInputType(InputType.TYPE_NULL)方法固然能隐藏键盘,可是 ...
- Android之弹出/隐藏系统软键盘
Android弹出/隐藏系统软键盘的代码如下: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT ...
- Android隐藏输入法键盘(hideSoftInputFromInputMethod没有效果)
在个别时候,需要强制隐藏Android输入法键盘,如当前键盘正在显示,这个时候点击了侧滑面板,就要强制隐藏输入法键盘.网上常见的方法有: 1. InputMethodManager imm = (In ...
- Android 9.0 添加预置第三方输入法/设置默认输入法(软键盘)
前言 在一些Android项目中往往需要预置第三方输入法或自己的输入法,这篇文章就简单讲解如何预置第三方输入法apk及设置默认输入法 结果展示 在介绍基本的调整方法前,先看看效果图, 如下 调整方法 ...
- Android中检测软键盘的弹出和关闭
Android系统并没有提供明显的API来监听软键盘的弹出和关闭,但是在某些情况下我们还是有办法来检测软键盘的弹出和关闭. 从StackOverflow找到了一个不错的方法.但是这种只适用于在mani ...
随机推荐
- hdu 5392
Sample Input 2 3 1 3 2 6 2 3 4 5 6 1 Sample Output 2 6 题意:给一个转置求它的循环长度 题解:分解成循环求最小公倍数 #include< ...
- 2015 多校联赛 ——HDU5363(快速幂)
Problem Description soda has a set S with n integers {1,2,…,n}. A set is called key set if the sum o ...
- [POJ2406]字符串的幂
题目描述] 对于给定的两个字符串a,b,我们定义a*b是将把它们连接在一起形成的字符串.例如,若a="abc",b="def",则a*b="abcde ...
- 探索C++多态和实现机理
前一段时间被问到过一个问题,当时模模糊糊,就是说不清楚,问题问到说:什么情况下会将基类的析构函数定义成虚函数? 当时想到 如果子类B继承了父类A,那么定义出一个子类对象b,析构时,调用完子类析构函数, ...
- tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例
tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例 #!/usr/bin/env python # -*- coding: utf-8 ...
- 异步 JavaScript 之 macrotask、microtask
1.异步任务运行机制 先运行下面的一段代码: console.log('script start'); setTimeout(function() { console.log('setTimeout' ...
- Linux必备操作vim
vim被称作为编辑器之神,那么在我们操作linux系统时,进行编辑操作有没有感觉心有余而力不足?今天我讲自己总结的一些vim的操作命令和大家进行一下分享,有不足之处还请指出. vim的三种模式大家还记 ...
- Oracle VM VirtualBox虚拟机内Linux系统硬盘扩容步骤(CentOS6.5)
1.首先获取要扩容的虚拟机的 UUID VBoxManage 改命令在C:\Program Files\Oracle\VirtualBox目录内,可先添加该目录到环境变量.C:\Users\yzkj- ...
- JavaScript中的类
JavaScript类的相关知识 1.例子 /* 例1 */// 定义一个构造函数function Range(from, to){ this.from = from; this.to = ...
- JAVA 练习 找出素数
package com.zhang.hello; public class Task { /** * 1. 输出打印九九乘法表 * */ public void NO1(){ for(int i=1; ...