gpt4 book ai didi

java - 扩展 AlertDialog 还有什么问题 为什么对话框中的 EditText 中没有自动 IME

转载 作者:行者123 更新时间:2023-12-02 08:04:05 24 4
gpt4 key购买 nike

我有这个对话框(我正在简化我的用例):

class EditShoppingListDialog extends AlertDialog {

public EditShoppingListDialog(Context context) {
super(context/*, R.style.AppCustomDialog*/);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_addshoppinglist);
setTitle("Mike Testing");
}
}

我在 OnCreateDialog 方法之外(在我的 Activity 的 onContextItemSelected 中)创建并使用这个子类化的 AlertDialog,如下所示:

AlertDialog dialog = new EditShoppingListDialog(this);
dialog.show();

现在,我已经使用这个代码库一个多月了,从未发现任何问题,这让我想知道为什么他们建议使用 AlertDialog.Builder 来创建自定义对话框。

当我将应用程序部署到真实设备时,我立即开始发现问题。其中最阻碍的是,即使我单击 AlertDialog 中的 EditText 字段,也无法显示软键盘(IME?)。

这是最好的部分;如果我说:

class EditShoppingListDialog extends Dialog {
...
}

如果我单击对话框中的 EditText,IME 会自动出现。我找到了这个thread但接受的解决方案不适用于 AlertDialog。

但是,我发现在派生的 AlertDialog 的 OnCreate 上执行此操作有助于显示 IME,但它位于对话框后面,我无法与其交互:

InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,0);

对于丢失的帖子我真的很抱歉,但我已经为此花费了 5 个多小时,并且非常感谢您的帮助。我坚持扩展 AlertDialog 的原因是因为我需要一个没有标题栏的对话框,它在 Android Dialog 中说。文档表明我无法拥有没有标题栏的对话框。

最佳答案

很容易设置一个没有标题的对话框。创建如下样式,

 <style name="no_title_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>

初始对话

Dialog notitleDialog = new Dialog(this, R.style.no_title_dialog);

出现的对话框应该没有标题

关于java - 扩展 AlertDialog 还有什么问题 为什么对话框中的 EditText 中没有自动 IME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448323/

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