android输入法详解
2016-07-25 09:15
435 查看
当我们弹出一个Dialog时候,如果这个Dialog需要输入数据,然后确定后又需要关闭输入法,一般系统的hide,跟show方法总会有各种问题,最霸道的解决方法就是写一个定时器,定时弹出或者关闭输入法。
[/code]
import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; public class InputTools { //隐藏虚拟键盘 public static void HideKeyboard(View v) { InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); if ( imm.isActive( ) ) { imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 ); } } //显示虚拟键盘 public static void ShowKeyboard(View v) { InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); imm.showSoftInput(v,InputMethodManager.SHOW_FORCED); } //强制显示或者关闭系统键盘 public static void KeyBoard(final EditText txtSearchKey,final String status) { Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { InputMethodManager m = (InputMethodManager) txtSearchKey.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if(status.equals("open")) { m.showSoftInput(txtSearchKey,InputMethodManager.SHOW_FORCED); } else { m.hideSoftInputFromWindow(txtSearchKey.getWindowToken(), 0); } } }, 300); } //通过定时器强制隐藏虚拟键盘 public static void TimerHideKeyboard(final View v) { Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); if ( imm.isActive( ) ) { imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 ); } } }, 10); } //输入法是否显示着 public static boolean KeyBoard(EditText edittext) { boolean bool = false; InputMethodManager imm = ( InputMethodManager ) edittext.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); if ( imm.isActive( ) ) { bool = true; } return bool; } } 原文地址:http://www.cnblogs.com/LIANQQ/p/3573983.html 有edittext的界面默认不弹出输入法 [code]android:windowSoftInputMode="adjustUnspecified|stateHidden"
[/code]
相关文章推荐
- Android Studio 后台执行的定时操作
- Android EditText 取消输入框弹出
- 关于actionMode 6.0适配问题
- Android数据绑定框架DataBinding,堪称解决界面逻辑的黑科技
- android图片三级缓存的思路
- Android ormlite更改数据库默认位置
- Android 开发之验证手机格式
- Android 开发之 dp 和 px 之间相互转换
- Android中如何根据sql文件创建数据库并插入数据
- android theme
- Android Service使用技巧
- Android阶段学习笔记 7.25-7.29 之 解析聚合数据 全国天气预报 Json
- Android中SQLite应用详解
- 使用Android Studio进行单元测试
- android中dip、px相互换算
- android的一些知识小记
- Android一行命令上传你的项目到Jcenter/Maven
- Android SQLiteDatabase的使用
- android应用启动,卸载,分享应用
- android测试类