在片段中添加和删除没有edittext的键盘

时间:2014-12-05 14:22:58

标签: android android-fragments keyboard android-edittext

我正在创建一个遥控器,让人们输入Minix安卓加密狗的角色。通过平板电脑或智能手机上的其他应用程序,人们可以输入发送到加密狗的数据以供输入。

当我按下按钮时,我尝试以编程方式创建键盘,我可以使用该按钮获取键盘输入的按键。当我点击ANYTHING ELSE然后键盘时,我还必须删除键盘。这是重要的部分,因为我使用片段并且屏幕上还有其他视图,当按下时,还必须移除键盘。

那么我怎么知道键盘上没有手机/平板电脑的触摸输入?我已经尝试了onfocusChanged,但是这并没有奏效,因为如果我在屏幕上按某些内容,我的焦点就不会改变。

目前我正在使用此代码,当我按下按钮并拦截键盘上输入的所有文字时,我可以显示键盘。

mKeyboard = (Button) view.findViewById(R.id.buttonKeyboard);
mKeyboard.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final EditText plainTextInput = (EditText) view.findViewById(R.id.PlainTextInput);
            plainTextInput.requestFocus();
            InputMethodManager keyboard = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);

            keyboard.showSoftInput(plainTextInput, 0);
            plainTextInput.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    Log.e(TAG, s.toString());
                }

                @Override
                public void afterTextChanged(Editable s) {

                }
            });
            plainTextInput.getLayout();
        }
    });

现在我如何知道用户何时按下键盘外的某个位置,这样我可以关闭键盘?或者是否有其他方法可以在没有隐形edittexts的情况下添加键盘?

0 个答案:

没有答案