如何在编辑文本之外一键隐藏键盘?

2024-01-19

我想通过点击编辑文本外部来隐藏键盘。这是我的 xml 代码:

<RelativeLayout
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:onClick="rl_main_onClick">
<RelativeLayout
  //Here there are some widgets including some edittext.
</RelativeLayout>

这是我的java代码(MainActivity):

public void rl_main_onClick(View view) {
    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}

但我必须点击两次才能隐藏键盘。第一次点击只是将“下一步”(对于最后一个编辑文本,它是“完成”)更改为“输入”图标,然后第二次点击隐藏键盘。 这是第一次点击时发生的情况:

现在我有两个问题:

  1. 如何修复它并只需轻轻一按即可隐藏键盘?

  2. 是否可以对我的所有编辑文本执行此操作(所有代码都用一个代码)?


尝试更换onClick with onTouch。为此,您需要更改布局属性,如下所示:

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true">

    <RelativeLayout>

        // widgets here

    </RelativeLayout>

</RelativeLayout>

然后删除rl_main_onClick(View view) {...}方法和插入onTouch里面的监听器方法onCreate() :

findViewById(R.id.relativeLayout).setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
        return true;
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在编辑文本之外一键隐藏键盘? 的相关文章

  • Android 中用虚拟键盘捕捉按键按下的情况?

    使用物理键盘 您可以使用按键监听器 http developer android com reference android text method KeyListener html 就像是 myEditText setOnKeyListe
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 安卓无法玩ogg

    有人知道这是什么意思吗 ogg使用phonegap is Media播放 它使用MediaPlayer 05 26 15 41 50 007 1160 3631 E AudioFlinger no more track names avai
  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • android webview 函数 onPagefinished 被调用两次

    我的android webview功能onPageFinished被调用两次 我不知道为什么 但它在 android 2 2 上运行良好 但当我将其升级到 4 时 它就不起作用了 代码附在下面 Code Override public vo
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Renderscript 示例构建错误

    所以我想尝试使用 RenderScript 的示例 并在 Eclipse 中导入了 HelloWorld 但它给了我这样的错误 2011 10 25 13 10 48 HelloWorld home mileoresko workspace
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • Web 视图未在 Android 中加载本地 html 文件

    I am integrating html in android I have created a web view But i am not able load local html page Surprisingly web view
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • Android:如何检测手机设置中的语言已更改

    我如何检测我的手机语言是否已更改 例如 Facebook 应用程序将向我们宣布 please wait we preparing your language i used myString Locale getDefault getDisp

随机推荐

  • Windows 7下如何设置进程超时?

    我想使用 Windows 批处理文件启动一个程序 但程序应该在一定的超时值后停止 例如 运行程序60秒 60秒后停止 Linux下有这个不错的timeout命令做我想做的事 Windows 也有一个timeout命令 但它只是暂停命令 延迟
  • 生成不重复的随机数。C# [重复]

    这个问题在这里已经有答案了 大家好 我试图在 C 的同一行上生成 6 个不同的数字 但我面临的问题是有些数字在同一行上重复 这是我的代码 var rand new Random List
  • 在 Mercurial 中,如何将反向补丁应用于特定文件?

    相关Mercurial 在一个存储库中的分支之间合并一个文件 https stackoverflow com questions 1078881 mercurial merging one file between branches in
  • 在 iPhone 应用程序中使用 CoreGraphic 描边作为 Alpha 遮罩

    我基本上希望为不同的目的创建类似于 iSteam iFog alebit 的非常简单版本的东西 实际上 将有两个图像 一个是主题图像 另一个是凝结图像或类似图像 然后 用户可以在屏幕上擦拭手指 它将从顶层 剪切 以显示下层 到目前为止 我已
  • 如何在IntelliJ IDEA中查看JDK外部文档?

    此操作的快捷方式是 Shift F1 但它始终呈灰色 即使我已指出 JDKdocumentation path to the docs文件夹 docs 文件夹解压自jdk 7u2 apidocs zip http www oracle co
  • matplotlib 中的交互线

    我正在尝试使用 matplotlib 制作一个交互式绘图 该绘图创建一个端点处带有两个句柄的线段 您可以单击并拖动手柄 线条将刷新以匹配以此方式指定的位置 与此 matplotlib 示例类似多编辑器 http matplotlib org
  • Java spring security - 拦截不同登录的子域url?

    我有一个安装了 spring security 且运行良好的应用程序 它目前已用完www exampledomain com 我现在想扩展在子域之外运行的应用程序 例如newapp exampledomain com 唯一的问题是 对于这个
  • 是否可以在 lambda 表达式中定位 EventHandler?

    举一个简单的例子 如果我有某种按钮 UI 类 我可以编写一个函数来接受指向其的表达式吗 Click事件处理程序 SomeMethod
  • 如何将编辑后的JTable数据保存到数据库?

    首先为我糟糕的英语感到抱歉 我会尽力理解你我的问题 我想要的只是在单击 保存 按钮时保存用户在 JTable 中输入的新数据 我正在从数据库中检索前两列中的学生 ID 姓名 并且我还在第三列中添加了当前日期 并在第四列中添加了缺席 出席 这
  • 如何使用轮盘赌选择最多数量的海龟

    在我的模型中 海龟有两种性别 雄性有两种潜在的策略 雌性会计算一定半径内雄性的数量 我希望雌性根据两种雄性策略的相对频率来权衡从雄性组中选择的概率 无需替换 我已经有了从男性中选择概率的代码 matingPoolProbAnad and m
  • 与默认 emacs 分开改变 Emacs 迷你缓冲区的字体大小?

    我一直在尝试将 emacs 迷你缓冲区的字体 外观与 emacs 默认字体分开 但运气不佳 具体来说 我有兴趣使迷你缓冲区字体大小更大 以便与 emacs MULE 一起使用 因为使用我当前的字体设置 或者如果我在 上网本 屏幕上使用 em
  • 在 Haskell 中很好地打印/显示二叉树

    我有一个树数据类型 data Tree a b Branch b Tree a b Tree a b Leaf a 我需要使它成为一个实例Show 不使用deriving 我发现很好地显示带有两片叶子的小树枝很容易 instance Sho
  • 选择不同计数(id)与选择计数(不同id)

    我正在尝试从表中获取不同的值 当我跑的时候select distinct count id from table我得到了超过一百万的计数 但是如果我跑了select count distinct id from table我只有大约 300
  • GoogleService-Info.plist 文件中的 iOS Firebase IS_ADS_ENABLED 标志

    添加时Firebase支持 iOS 应用程序 Firebase 生成此GoogleService Info plist file 该文件中的标志之一是IS ADS ENABLED默认为true 我找不到这个标志的任何文档 在网站上或在FIR
  • 如何让线程一个接一个地运行?

    创建三个线程和主线程 将每个线程作为并发任务执行 退出每个线程时显示信息 我可以通过上述练习运行两个线程 但很难运行三个线程 这是我的程序 package Thread 导入 java util concurrent atomic Atom
  • 滚动时 Xcode 表格视图滞后

    void bilgileriYukle NSMutableArray yemekIsimleri NSMutableArray alloc init NSMutableArray resimIsimleri NSMutableArray a
  • Node.js/NodeMailer/Express/Outlook smtp 主机 - 超出并发连接限制

    一切顺利 我正在开发一个使用express和nodemailer的应用程序 我的应用程序成功发送电子邮件 但问题是 我无法以我想要的方式一次发送一封电子邮件 我不想将地址数组放入 收件人 字段中 我希望将每封电子邮件单独发送出去 我已经成功
  • Postgres 不使用索引来实现慢速功能

    在我的数据库设计中 用到了很多函数 而且其中许多都非常慢 因此 我认为在其中一些上创建索引以使执行速度更快一点可能是一个明智的想法 然而 我没有成功说服 PostgreSQL 9 6 实际使用我的索引 考虑这个表 用户 id integer
  • 视觉上隐藏内容但不隐藏伪内容

    我正在使用这样的模式来添加图标 before or after伪内容 span class icon icon example is content visually hidden assistive text span 如何在不隐藏的情况
  • 如何在编辑文本之外一键隐藏键盘?

    我想通过点击编辑文本外部来隐藏键盘 这是我的 xml 代码