我想在弹出窗口中输入从软键盘到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线程。 非常感谢您的任何建议。
答案 0 :(得分:0)
如果您不想阻止UI,请尝试在线程下运行此部分代码。 AsyncTask将是一个不错的选择。
在此处查看如何使用AsyncTask: - > http://developer.android.com/reference/android/os/AsyncTask.html
祝你好运