Java如何从toggleSoftInput

时间:2015-06-23 15:03:07

标签: java android android-edittext

我通过在画布上绘制来创建EditText,因此我在点击时使键盘出现并使EditText接收输入时遇到问题。经过一些搜索,我发现我可以使用InputMethodManager使键盘显示为EditText提供输入。

不幸的是,EditText没有从软键盘上按下的任何内容接收任何字符输入。

我需要使用imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);,因为当我使用imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);时,按下EditText时软键盘根本没有出现。

代码:

if((int)event.getX() > 50 && event.getX()<400 && event.getY() > 50 && event.getY() < 200){
                editText.setFocusable(true);
                editText.setFocusableInTouchMode(true);
                editText.requestFocus();
                InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
            }

如何解决这个问题?欢迎任何工作解决方案。谢谢!

2 个答案:

答案 0 :(得分:0)

这应该可以正常工作。

EditText edit = (EditText) view.findViewById(R.id.passwordtextvalue);
        edit.setOnKeyListener(this);

        InputMethodManager imgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        imgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
        edit.requestFocus();

我的应用程序中有这个,当我有软键盘时,它可以正常编辑文本

答案 1 :(得分:0)

试试这个

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);