有些时候我们的应用需要在EditText聚焦时自动弹出输入法,或者隐藏输入法,关于输入法弹出,一般不会有什么问题。但是,有一些情况输入法是没发自动弹出的,比如弹出的对话框里有edittext,介绍一些常用的用法。

一,配置AndroidManifest文件

通用做法,在有edittext的activity中,配置
android:windowSoftInputMode,让输入法自动调节大小。
比如登录界面,有两个EditText和按钮,当用户点击输入用户名时,自动弹出输入法,将布局顶上去,adjustResize可以让输入法不遮住edittext输入框。

 <activity    android:name="com.oair.oair_client.LoginActivity"    android:label="@string/title_activity_login"    android:launchMode="singleTask"    android:screenOrientation="portrait"    android:configChanges="keyboardHidden|orientation"    android:windowSoftInputMode="adjustResize"/>

三,设置activity启动的时候输入法默认不开启

activity启动的时候,editext不聚焦,输入法是不会弹出的,输入的时候点击就会弹出输入法。
也可以在onCreate方法中,设置:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

三,对话框有EditText,强制显示输入法

弹出的对话框里有edittext,show方法与输入法的现实可能会冲突,没发自动弹出的,所以可以这样:

//显示对话框之后,用handler延时显示输入法dialog_rename.show();        new Handler().postDelayed(new Runnable() {            @Override            public void run() {               showInputMethod();            }        },100);    }    private void showInputMethod() {        //自动弹出键盘        InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);        inputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);        //强制隐藏Android输入法窗口        // inputManager.hideSoftInputFromWindow(edit.getWindowToken(),0);    }

四,输入法相关方法

/** * 显示键盘 * @param context * @param view */public static void showInputMethod(Context context, View view) {        InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);        im.showSoftInput(view, 0);} //隐藏虚拟键盘 public static void HideKeyboard(View v){          InputMethodManager imm = ( InputMethodManager) v.getContext( ).getSystemService(Context.INPUT_METHOD_SERVICE);             if (imm.isActive()) {                 imm.hideSoftInputFromWindow( v.getApplicationWindowToken() , 0 );               }    }

总结

应用起来比较简单,不再赘述。也可以配置EditText,设置是否获得焦点,清除焦点:edit.clearFocus();
EditText不弹出软件键盘:
edit.setInputType(InputType.TYPE_NULL);
activity默认弹出输入法:
android:windowSoftInputMode="stateVisible|adjustPan"
欢迎交流,杜乾,Dusan,Q 291902259。

更多相关文章

  1. Android中弹出对话框的实现
  2. Android自定义对话框Dialog以及主题和样式
  3. Android中软键盘弹出时底部布局上移问题
  4. android中的键盘处理
  5. Android Alert Dialog解决点击按钮对话框不关闭的问题
  6. Android界面编程——对话框控件(四)
  7. android EditText不自动弹出软键盘
  8. Android中单击空白区域隐藏键盘

随机推荐

  1. Android MVP应用
  2. 【进阶】从linux到android,进程的方方面面
  3. Android 多媒体综述
  4. Android 如何建立你的菜单
  5. 【Android 修炼手册】常用技术篇 -- 聊聊
  6. QQ邮箱Android客户端产品体验报告
  7. android学习---通过android帮助学习TextV
  8. android dumpsys debug tools
  9. Android(安卓)4.0 捕获Home键
  10. 初步理解Android Fragment