AlertDialog 与 EditText,自动打开软键盘并聚焦于 EditText 不起作用

2023-12-24

我正在尝试编写一段代码,该代码应在 AlertDialog 中显示 EditText 后立即将其聚焦,然后自动打开软键盘。相反,它只会使屏幕变暗。

Builder builder = new Builder(this);
final EditText input = new EditText(this);
AlertDialog dialog = builder.create();
builder
    .setTitle(R.string.dialog_title_addsubject)
    .setMessage(R.string.dialog_addsubject)
    .setView(input)
    .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            String value = input.getText().toString();
            if (input.getText().toString().trim().length() == 0) {
                Toast.makeText(Main.this, R.string.input_empty, Toast.LENGTH_SHORT).show();
            } else {
                db.insertSubject(value);
                getData();
            }
         }
    })
    .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    input.requestFocus();
    dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
    dialog.show();

我尝试了很多方法来做到这一点,但没有一个有效。我希望你们能在这里帮助我。提前致谢!


好吧,我设法让它工作:

Builder builder = new Builder(this);
            final EditText input = new EditText(this);
            builder
                .setTitle(R.string.dialog_title_addsubject)
                .setMessage(R.string.dialog_addsubject)
                .setView(input)
                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        String value = input.getText().toString();
                        if (input.getText().toString().trim().length() == 0) {
                            Toast.makeText(Main.this, R.string.input_empty, Toast.LENGTH_SHORT).show();
                        } else {
                            db.insertSubject(value);
                            getData();
                        }
                        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
                    }
                })
                .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
                    }

                });

                builder.show();
                input.requestFocus();
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

此方法不需要对话框,因此我可以使用 builder.show() 来显示对话框,并且 Saber 提供的代码会打开软键盘。每个按钮中的另一个代码片段会自动关闭软键盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AlertDialog 与 EditText,自动打开软键盘并聚焦于 EditText 不起作用 的相关文章

  • 房间数据库更改未触发观察者

    当房间数据库更改时 我试图更新 RecyclerView 但是 当数据库发生更改时 不会调用 MainActivity 中定义的观察者的 onChanged 方法 如果我让 DAO 返回 LiveData 而不是 List 并在 ViewM
  • 如何在 Android 中更改 Drawable 的颜色?

    我正在开发一个 Android 应用程序 并且我有一个从源图像加载的可绘制对象 在此图像上 我想将所有白色像素转换为不同的颜色 例如蓝色 然后缓存生成的 Drawable 对象 以便稍后使用它 举例来说 假设我有一个 20x20 PNG 文
  • 如何替换 Android 中已弃用的 Bundle/Argument get(key) 调用

    我有以下扩展函数 允许我在应用程序活动和片段之间传递捆绑数据项 inline fun
  • 如何从Firebase Firestore实时更新文档中获取修改后的字段或数据? [复制]

    这个问题在这里已经有答案了 我有多个文档 我的问题是我无法获取修改的特定数据 我正在获取完整的文档 db collection employees whereEqualTo OID OID addSnapshotListener new E
  • 在 ChromeO 上安装未知来源的 apk

    我今天早上更新了我的 Chromebook Asus Flip 以获取 Play 商店 我的 Chromebook 安装了 M53dev 通道版本 它运作良好 我可以安装并运行从 Play 商店下载的 Android 应用程序 我想测试我的
  • 使用 Fragment 在工具栏中实现 SearchView

    当前情况 我的应用程序主页由导航抽屉组成 因此我将视图作为片段加载 我的工具栏中也有搜索图标 我在中实现了它menu xml 下一步我实施了SearchView通过以下问题的答案来获取搜索图标在工具栏中实现搜索 https stackove
  • Android 图表[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个项目 其中有一些图表 图形 刻度图 烛台图和范围图 但问题是 没有该图表的库 我有烛台图的
  • 拖动时跳转 ImageView。 getX() 和 getY() 值正在跳跃

    我创建了一个用于拖动视图的 onTouchListener 如果我使用的话 图像可以顺利拖动getRawX and getRawY 问题是 当您向下放置第二个指针然后抬起第一个指针时 图像将跳转到第二个指针 此 onTouchListene
  • ExpandableListview OnGroupClickListener 未触发

    我正在关注这个 以编程方式折叠 ExpandableListView 中的组 https stackoverflow com questions 4314777 programmatically collapse a group in ex
  • 如何禁用操作栏上“向上”按钮的翻转?

    背景 我做了一个 应用程序管理器 https play google com store apps details id com lb app manager 替代应用程序 我希望添加 RTL 从右到左 语言的翻译 因为我知道在某些 And
  • 将 java 中的 byte[] 转换为 C++ 中的 unsigned char* 的正确方法,反之亦然?

    我是 C 和 JNI 的新手 我尝试找到一种正确的方法 通过使用 JNI 将 java 中的 byte 转换为 C 中的 unsigned char 反之亦然 我正在安卓上工作 在谷歌和SO中寻找解决方案后 我还没有找到将java中的byt
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 控制 OverlayItem 大小

    我正在构建一个在单个 ItemizedOverlay 中包含几十个 OverlayItems 的地图 我的地图设计为可以非常近距离地查看 大约缩放级别 18 并且 OverlayItems 彼此非常接近 地图放大时看起来不错 但是 如果用户
  • 如何使用 SharedPreferences 保存多个值?

    我正在开发一个字典应用程序 在我的应用程序中 我假设用户想要保存最喜欢的单词 我决定使用共享首选项保存这些值 我知道 SQLite 和文件更好 但我坚持使用 SharedPreferences 所以继续使用它 下面是我的代码 Overrid
  • Android 上的 MIDI:Java 和/或 AIR 库

    一段时间以来 我一直在考虑在 iPad 上 重新 构建一个应用程序 其中我将使用 Objective C 和DSMI http dsmi tobw net 将 MIDI 信号发送到主机 这还不错 我的意思是 除了实际编写应用程序之外 现在我
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • 如何在android中通过蓝牙向配对设备发送短信?

    在我的应用程序中 我想通过蓝牙发送和接收短信 我可以在列表视图中看到配对设备名称和地址的列表 但是当我尝试向配对设备发送文本时 什么也没有发生 在其他设备中没有收到文本 这是我向配对设备发送消息的代码 private void sendDa
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像
  • Android GetPTLAFormat 上的 Phonegap 错误

    我们正在开发一个使用 jQuery 移动和电话间隙的应用程序 一切似乎都工作正常 但是当在连接的 Android 手机上运行应用程序时 我们在 Eclipse logcat 中看到大量类似这样的错误 0 GetPTLAFormat inva

随机推荐

  • 如何定位数组中的负数,以获得所有正数的总和?

    我试图弄清楚如何定位数组中的负数 我有这个 function SummPositive array SummPositive 1 2 3 4 5 2 23 1 13 10 52 这是一个包含负数和正数的数组 当我不知道数组中有多少个负数时
  • php:按键值迭代函数参数

    我有一个 php 函数function foo bar1 bar2 bar3 是否有可能获取参数名称和值动态地 I found func get args http php net manual de function func get a
  • 我可以使用 Google Script API 部署绑定脚本吗

    Google 最近发布了新的 Google Script API 我认为这是一个实现期待已久的项目的好机会 上下文如下 企业 GSuite 域中的一些用户共享约 100 张具有相同目的的表 我想用侧边栏来增强这些工作表 以显示附加信息等 我
  • 如何在 Qt 中解析 XML 字符串

    我正在开发一个应用程序 在创建 Web 服务后 我收到了来自服务器的响应 该响应位于 XML 标记中 响应 r n
  • 递归地应用复杂的泛型类型

    谢谢一个答案 https stackoverflow com questions 58409603 generate a type where each nullable value becomes optional来自 Nit 我有一个通
  • 在reactjs中将字符串作为html

    我有一个返回多行 html 的函数 如下所示 render function var badges user get achievements badges map function badge var str h3 span span h
  • 在命令窗口中禁用自动滚动

    我在 Matlab 中编写的许多代码都有非常详细的输出 当程序运行时 信息被打印到命令窗口 并且每换行一次 窗口就会自动滚动到底部 当我想更仔细地阅读一些输出或向上滚动以查看较旧的输出时 这会成为一个问题 我可以向上滚动 但只能直到打印出新
  • 在 Delphi 中通过 COM 对象使用 .Net 类有时会挂起

    我有一组用 Delphi NET NET 1 1 编写的库 我想在我的 Win32 Delphi 应用程序中使用它们 对于与性能相关的问题 我决定采用 COM 路线 有时 在重建 DLL 后 当我尝试实例化通过 COM 公开的对象时 Win
  • 如何在没有配置的情况下设置分页链接的样式 - codeigniter

    我有以下分页样式 ul class pagination li a href i class fa fa long arrow left i Previous Page a li li class active a href 1 a li
  • 我有一个程序,我想比较带来日期并带来所需的数据

    我将所有详细信息写在我有两个名为 GAZZETED DAYS 的表 其中包含列 GAZZETED DATE DESCRIPTION PAY IN OUT 包含列 EMP CODE ATT DATE 请检查我已经粘贴在 dbfiddle 中的
  • 从 Azure Blob 存储下载文件

    我有一个应用程序 允许用户上传存储在 Azure Blob 存储中的照片 用户还可以查看这些照片 要查看它们 我们希望应用程序将图像下载到默认下载位置 目前 上传工作完美 但我发现Azure API的下载功能似乎没有做任何事情 另外 我无法
  • 在显示用户数据的视图表中更改和保存 mysql 用户数据

    我有一个表 显示从 mysql 表中获取的用户数据 我希望使其可以在该表的单元格内编辑 我已经使用 php 在 文本 类型输入字段中显示数据 如代码所示 为了重新提交更改的数据 我将表行包装在表单中 但问题是表单数据没有重新提交 我想让用户
  • Fluent nHibernate 自动映射属性为 nvarchar(max)

    使用流畅的 nhibernate 和自动映射 nhibernate 创建我的数据库模式 我如何让 nhibernate 基于以下类在数据库中创建 nvarchar max 列 public class VirtualPage BaseEnt
  • C# 中的动态字符串格式化

    我创建了接受字符串的 log 方法 当我想使用它时 我会写这样的内容 Log string Format Message 0 AdditionalInfo 我应该如何实施Log方法以便能够使用字符串Format但不必在方法参数中显式编写 L
  • 404 Not Found,但 Laravel 5.4 中存在路由

    我正在使用 PhpStorm 我可以运行并打开index php 但是当我想按提交按钮 登录后 时 它显示 404 未找到 在 Windows 10 上运行的 Web 服务器 Apache 2 4 这是我的家 这是我的路线 我不完全确定为什
  • .dynamicType 已弃用。使用“类型(...)”代替

    我刚刚更新到 Xcode 8 和 iOS 10 使用旧版 Swift 语言版本 尝试再次编译我的项目一直是一种痛苦 即使仍然使用旧的 Swift 语法 这次我的函数之一使用NSBundle forClass self dynamicType
  • 如何调试从完全信任进程启动器启动的 .exe

    我在同一解决方案中构建了一个 UWP 应用程序和一个 WPF 应用程序 我正在使用 FullTrustProcessLauncher 类从 UWP 应用程序启动 WPF 应用程序 我还使用 App Service Connection 类来
  • 查找嵌套数组中符合条件的第一个元素

    我有以下文件 doc1 array field ABC enabled false field BCD enabled true field DEF enabled false field XYZ enabled true doc2 arr
  • 使用 ADO.net 和 SQL 中的特殊字符

    我想在 Winforms 中编写一个小型应用程序 我可以在其中编写一些单词并使用 ADO net 将它们写入 SQL 数据库 当我想编写带有占位符的字符串时遇到麻烦 例如 Give me your s right now 我的数据库中记录的
  • AlertDialog 与 EditText,自动打开软键盘并聚焦于 EditText 不起作用

    我正在尝试编写一段代码 该代码应在 AlertDialog 中显示 EditText 后立即将其聚焦 然后自动打开软键盘 相反 它只会使屏幕变暗 Builder builder new Builder this final EditText