无法在Popupwindow中输入Edittext视图的文本?

时间:2013-01-21 08:05:12

标签: android android-edittext popupwindow android-dialog

我想在弹出窗口中输入从软键盘到Edittext小部件的文本,但我正在努力解决一些问题。 我的活动是一个游戏卡表,并启用了一些动画。在游戏表中,有一些按钮。如果玩家点击某个按钮,将显示一个弹出窗口。问题是玩家无法在弹出窗口内输入文本到Edittext。我发现了一些类似的问题,最流行的建议是:

Popupwindow.setFocusable(true)

使用此设置,我可以正常输入Edittext。但是,这将阻止主UI线程并导致停止游戏表中的动画。我不希望这发生,因为它对用户体验不利。 使用下面的代码片段,当edittext具有焦点时,可以显示软键盘。但是,我无法从键盘输入任何内容到edittext。此外,当我关闭弹出窗口时,键盘仍然显示而不是关闭。

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus){
                    InputMethodManager imm = (InputMethodManager)ct.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
                    imm.showSoftInput(v, InputMethodManager.SHOW_IMPLICIT);
                }
            }
        });

请帮我找到在不阻止动画的情况下在EditUI线程中输入数据到Edittext的方法。另一种方法是使用自定义对话框但没有帮助。使用对话框也导致阻塞mainUI线程。 非常感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

如果您不想阻止UI,请尝试在线程下运行此部分代码。 AsyncTask将是一个不错的选择。

在此处查看如何使用AsyncTask: - > http://developer.android.com/reference/android/os/AsyncTask.html

祝你好运