Android 软键盘显示与隐藏

来源:互联网 发布:杭州java培训哪家好 编辑:程序博客网 时间:2024/05/16 04:42

Activity初始化后,如果有EditText,则自动弹出软键盘。

如果不想弹出软键盘,在清单文件下对应Activity节点下配置

android:windowSoftInputMode="stateHidden"

点击EditText意外的界面,让软键盘消失:

@Overridepublic boolean onTouchEvent(MotionEvent event) {InputMethodManager imeManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imeManager.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);return super.onTouchEvent(event);}

呼出软键盘:

有时候一个密码框输入密码需要去服务器验证,如果验证失败,应该自动呼出软键盘,提示用户重新输入密码:

下面的例子中,et_psw是一个EditText的组件,将密码框内容清空,然后让密码框获取焦点,最后将软键盘呼出(使用InputMethodManager的toggleSoftInput(int ,int) 方法)

// 呼出软键盘private InputMethodManager m; // 软键盘管理器private void showSoftKeyBorad() {et_psw.setText("");et_psw.requestFocus();if (m == null) {m = (InputMethodManager) DetailActivity.this.getBaseContext().getSystemService(INPUT_METHOD_SERVICE);}m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);}


还有一种方法,让界面上永远不弹出来输入法面板,即使界面上有EditText也不可以。只有一行代码,写在Activity 中 onCreate 方法内,setContentView之前。

@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.getWindow().setFlags(  //这行设置代码屏蔽了输入面板,无法使用输入法WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);setContentView(R.layout.activity_main);}

原创粉丝点击