文档章节

Android程序打开和关闭输入法

SRain215
 SRain215
发布于 2016/02/29 14:15
字数 181
阅读 121
收藏 1

一、打开输入法窗口:

/**
 * 动态显示软键盘
 *
 * @param context 上下文
 * @param edit    输入框
 */
public static void showSoftInput(Context context, EditText edit) {
	edit.setFocusable(true);
	edit.setFocusableInTouchMode(true);
	edit.requestFocus();
	InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
	inputManager.showSoftInput(edit, 0);
}

 

二、关闭出入法窗口

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
imm.hideSoftInputFromWindow(OpeListActivity.this.getCurrentFocus().getWindowToken(),  InputMethodManager.HIDE_NOT_ALWAYS);
/**
 * 隐藏软键盘
 */
public static void hideKeyboard(Activity c) {
	try {
		InputMethodManager imm = (InputMethodManager) c.getSystemService(Context.INPUT_METHOD_SERVICE);
		imm.hideSoftInputFromWindow(c.getCurrentFocus().getWindowToken(), 0);
	} catch (NullPointerException e) {
		Log.e("hideKeyboard", e.toString());
	}
}

 

三、如果输入法打开则关闭,如果没打开则打开

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

 

四、获取输入法打开的状态

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

 

键盘相关工具类:

KeyboardUtils.java

 

© 著作权归作者所有

共有 人打赏支持
SRain215
粉丝 17
博文 144
码字总数 89414
作品 0
扬州
Android工程师
私信 提问
Android EditText不弹出输入法总结,焦点问题的总结

看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置这个属相:android:windowSoftInputMode=stateVisible,这样就会默认...

带梦想一7飞
2013/07/12
0
0
Android中EditTex焦点设置和弹不弹出输入法的问题

 今天编程碰到了一个问题:有一款平板,打开一个有EditText的Activity会默认弹出输入法。为了解决这个问题就深入研究了下android中焦点Focus和弹出输入法的问题。在网上看了些例子都不够全面...

新年
2015/11/11
0
0
Android中关于键盘的操作

一、打开输入法窗口: InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUTMETHODSERVICE); // 接受软键盘输入的编辑文本或其它视图 imm.showSoft......

董家二少
2014/03/28
0
0
【Android】防止UI界面被输入法遮挡(画面随输入法自适应)

相应用过Android手机的朋友都知道,有时候在文本框中输入文字后,操作按钮被输入法遮挡了,不得不关闭输入法才可以继续操作。 比如下面这个画面: 画面布局: 如果不做任何操作,那么点击文本...

晨曦之光
2012/03/01
4.2K
0
最新Android源码中已有中文输入法

今天上午Google刚更新了android源码,变化比较大,已经有中日文输入法。刚刚repo sync取了最新的android代码,四个钟头前又从cupcake分支merge了一大堆东西进master。并且看到了中文输入法相...

红薯
2009/03/28
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows / Linux / MacOS 设置代理上网的方法汇总

本文汇总了 Windows / Linux / MacOS 设置代理上网的各种方法,总结如下: 1、设置系统代理(Windows、Linux、MacOS) 2、设置代理插件(Chrome、Chromium、Firefox、Opera、QQ等浏览器) 3、...

sunboy2050
昨天
2
0
自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
昨天
1
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
昨天
3
0
linux定位应用问题的一些常用命令,特别针对内存和线程分析的dump命令

1.jps找出进程号,找到对应的进程号后面才好继续操作 2.linux查看进程详细信息 ps -ef | grep 进程ID 3. dump内存信息 Jmap -dump:format=b,file=YYMMddhhmm.dump pid 4.top查看cpu占用信息 ...

noob_chr
昨天
2
0
Android TV开发-按键焦点

写在前面 按键焦点过程了解 2.1 dispatchKeyEvent 过程了解 2.2 焦点查找请求过程了解 1.2.1 第一次获取焦点 1.2.3 按键焦点 焦点控制 焦点记忆 应用场景 参考资料 [TOC] 1. 写在前面 工...

冰雪情缘l
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部