首先编辑添加到窗口管理器的文本而不显示键盘

时间:2013-08-14 12:21:10

标签: android android-service android-edittext android-softkeyboard

我正在创建一个应用程序,在我的服务中我将添加到窗口管理器布局中,其中包含编辑文本。一切正常,键盘显示等。但是当我向窗口管理器添加第二个相同的布局时,我的第一个editext失去了焦点,我无法输入任何内容或者它可能没有失去焦点,因为你可以看到一个指针但是键盘没有显示,它只显示最后添加的布局。

我正在向窗口管理器添加视图:

params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                PixelFormat.TRANSLUCENT);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
singleLayout = inflater.inflate(R.layout.single_layout, null);
windowManager.addView(singleLayout, params);

我尝试使用该代码手动打开键盘:

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

但它没有用,这种方法也不起作用:

public static void forceFocusOnView(final View view) {
        if (view == null)
            return;
        view.post(new Runnable() {
            public void run() {
                view.clearFocus();
                view.post(new Runnable() {
                    public void run() {
                        view.requestFocus();
                    }
                });
            }
        });
    }

它总是只在最后添加的布局中显示键盘,感谢任何解决方案。

0 个答案:

没有答案