android 5.0设备 外接键盘 输入中文

公司项目 要求 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设置不自动获取焦点,点击后才获取,并弹出软键盘

否则 有时候会乱

 

转载请标准出处

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值