gpt4 book ai didi

android - 无法在弹出窗口中为 Edittext View 输入文本?

转载 作者:太空狗 更新时间:2023-10-29 15:13:50 25 4
gpt4 key购买 nike

我想从软键盘输入文本到弹出窗口内的 Edittext 小部件,但我遇到了一些问题。我的 Activity 是一张游戏牌 table ,并在上面启用一些动画。在游戏 table 上,有一些按钮。如果玩家点击某个按钮,将显示一个弹出窗口。问题是播放器无法在弹出窗口内向 Edittext 输入文本。我发现了一些类似的问题,最流行的建议是:

Popupwindow.setFocusable(true)

有了这个设置,我就可以正常输入到Edittext了。但是,这会阻塞主 UI 线程并导致游戏表中的动画停止。我不希望发生这种情况,因为这对用户体验不利。使用以下代码 fragment 可以在 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);
}
}
});

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

最佳答案

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

在这里检查如何使用 AsyncTask :-> http://developer.android.com/reference/android/os/AsyncTask.html

祝你好运

关于android - 无法在弹出窗口中为 Edittext View 输入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com