公司项目 要求 android 设备 外接键盘 且 不能显示系统自带的键盘
1.在baseactivity 里面使用这一行代码 ,这样只能输入字母 汉字 但不能输入中文
getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);//不使用系统键盘
2,如果说 需要再EditText 输入中文 且 弹出输入框
// 由于禁用了系统键盘 导致edittext不能输入中文 调用下面可以不受影响
mEt_name_da.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
mContext.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
return false;
}
});
// 当recycleview中使用edittext 会导致输入完毕后点击确认 输入法不会隐藏但其结果已经赋值到当前字段中, 那么就需要监听输入法的确认键 然后进行隐藏 输入法 调用下面代码
mEt_name_da.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//将输入法隐藏,mPasswordEditText 代表密码输入框
InputMethodManager imm =(InputMethodManager)mContext.getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mTv_name_da.getWindowToken(), 0);
return false;
}
});
如果使用recycleview 来创建edittext列表 是 请加上在父控件里面加上
android:focusable="true"
android:focusableInTouchMode="true"
使EditText设置不自动获取焦点,点击后才获取,并弹出软键盘
否则 有时候会乱
转载请标准出处