在 Android 中隐藏键盘的最佳方法

2024-03-08

我想知道在 EditText 输入文本后隐藏键盘的最佳方法。

1) setonfocuschangelistener :是否仅在按下完成按钮或焦点从一个 EditText 更改为另一个时触发此侦听器?当我使用这个方法时,我无法隐藏键盘。

2)setOnTouchListener:当我使用这个时,我可以隐藏键盘,但我怀疑这可能有问题。在本例中,我将触摸侦听器添加到根 LinearLayout。我使用过以下代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login);

    txtUserName = (EditText)findViewById(R.id.txtUserName);
    btnLogin = (Button)findViewById(R.id.btnLogin);
    layoutView = (LinearLayout)findViewById(R.id.li);

    layoutView.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inputManager.hideSoftInputFromWindow(txtUserName
                    .getWindowToken(), 0);
            return true;
        }
    });
}

在主 LinearLayout 中,我使用了另外两个 LinearLayout。我在上面的代码中遇到的问题是,在某些时候,当我按下时,键盘不会隐藏。 我的疑问是,我只添加根布局的触摸监听器,而不是为其他内部布局或其他控件(TextView)提供触摸监听器。当我触摸其他控件或 TextView 周围的某些点(即内部布局)时,键盘不会隐藏。

这意味着我需要将 touchListener 添加到根布局内的所有布局或控件吗? 对于这种情况如何才能更好的处理呢?


您可以使用此代码

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

在 Android 中隐藏键盘的最佳方法 的相关文章

  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • Recyclerview 动态部分不使用任何第三个库

    我想将标头添加到 recyclerview 我正在尝试使用来实现它 Override public int getItemViewType int position depends on your problem if position 0
  • Android WebView里面的ScrollView只滚动scrollview

    在我的应用程序中 我有一个 ScrollView 其中包含一些线性视图 一些文本视图和一个 Webview 然后是其他线性布局等 问题是 WebView 不滚动 Scroll 仅侦听 ScrollView 有什么建议么
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • 当它的父级是 ConstraintLayout 时设计 CardView 吗?

    我在编辑包含Relativelayout的Cardview内的RelativeLayout时搞砸了 ConstraintLayout会将相对布局的wrap content更改为0并添加工具 layout editor absoluteX 1
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne

随机推荐

  • Golang并发访问固定大小的map/array

    我正在探索使用固定键并发访问地图而无需锁定的可能性 以提高性能 我之前已经探索过与 slice 类似的功能 并且似乎它有效 func TestConcurrentSlice t testing T fixed int 1 2 3 wg sy
  • Unity:从设备摄像头录制视频

    我想要一个插件或一个库或一种从设备摄像头统一 Windows 独立 录制视频 当然有声音 的方法 目前 我可以使用该相机进行屏幕截图 有人说我可以截取很多张屏幕截图并将其转换为一个视频文件 我在资源商店找到了一个名为相机拍摄 https a
  • 继承的构造函数,在 clang++3.9 中编译,在 g++ 7 中失败

    这段代码片段 struct Base struct Derived Base using Base Base int main Base b Derived d b 在 clang 3 9 上编译良好 https godbolt org g
  • 是否可以在 Python 中生成正确的 PKCS12 (.pfx) 文件?

    我需要在 python 中生成一个 PKCS12 文件 其中包含自签名证书和私钥 我为此任务组装了以下 python 代码 import OpenSSL key OpenSSL crypto PKey key generate key Op
  • 如何存储我正在开发的 Alexa 技能的数据?

    我目前正在开发一项基于医疗保健的 Alexa 技能 所以我需要存储有关疾病 诊断和症状的信息 我已经掌握了一项基本技能 包括在一个文件中包含有关一种疾病的信息 制作了一个 zip 文件 将其上传到 AWS Lambda 并获得了 Amazo
  • PyInstaller 和 Enthought 套件

    我想知道是否有人成功使用 pyinstaller 和考虑导入的脚本创建独立的可执行文件 我已经尝试这样做几天了 但是我不断收到导入错误 通过一些挖掘 我相信我可能需要添加一些隐藏的导入并创建我自己的钩子 然而 我还没有听说有人在这方面取得了
  • 人行横道项目错误“构建 ABI 'armeabi-v7a' 失败”

    我使用 ubuntu 16 04 和 crosswalk project 以及 Phonegap Cordova 来制作我的混合应用程序 我正在编译示例 https crosswalk project org documentation a
  • 在 Scala 中制作一个非常基本的二叉树

    我正在尝试在 Scala 中制作一个非常简单的二叉树 用于数据存储和遍历 现在我有 trait Tree case class Node left Tree value String right Tree extends Tree 我的问题
  • Angular 2 过滤器/搜索列表

    我正在寻找 Angular 2 的方法this http www w3schools com howto howto js filter lists asp 我只有一个项目列表 我想进行一个输入 其工作是过滤该列表
  • 如何在android中用不透明度填充矩形

    我可以用画布绘制矩形填充矩形 Rect rt new Rect 0 0 getWidth getHeight myPaint setColor myColor myPaint setStyle Style FILL canvas drawR
  • 编写可在 Window 上运行的 Firefox、Chrome 和 IE 上移植的自定义协议处理程序

    我正在编写一个协议处理程序来启动 java 应用程序 调用 java jar myApp 1 等命令 目前我已经为 Chrome 实现了它 它看起来工作正常 不幸的是 我对 Firefox 和 IE 没有相同的行为 奇怪呃 X D 这是我的
  • 如何在 Matlab 中使用 Unix 时间戳?

    我有一些带有 Unix 时间戳的数据文件 在本例中 是自 1970 年 1 月 1 日 00 00 UTC 以来的毫秒数 我想在 Matlab 中将它们转换为人类友好的日期 时间字符串 例如 2012 年 8 月 31 日 11 36 24
  • wamp 2.2 中调用未定义函数curl_init() 错误

    当我尝试实施 google 和 facebook 身份验证时出现以下错误在 Windows 7 中使用 wamp 服务器 致命错误 调用未定义的函数curl init E wamp www mysite protected extensio
  • cabal 沙盒安装仍然失败,并显示“软件包可能会因重新安装而损坏”

    我正在尝试建立榆树平台 http elm lang org 使用阴谋集团沙箱 但是安装失败 并显示消息 软件包可能会因重新安装而损坏 在我看来 这似乎与沙盒的整个目的相矛盾 我曾相信沙盒应该避免这种错误 任何人都可以为我解释这个错误 甚至更
  • Scala 中的“上下文绑定”是什么?

    Scala 2 8 的新功能之一是上下文边界 什么是上下文绑定以及它在哪里有用 当然 我首先搜索了 并发现例如this https stackoverflow com questions 2961986 how do you write a
  • 以编程方式更改 iPhone 中的设备方向

    我有基于导航的应用程序 当我单击根视图中的任何行时 下一个视图应该处于横向模式 我无法找到适当的方法来实现这一点 我尝试的是 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOr
  • 按绝对值排序而不改变数据

    我正在寻找一种简单的方法来按特定列的绝对值对 pandas 数据框进行排序 但实际上不更改数据框中的值 类似的东西sorted df key abs 所以如果我有一个像这样的数据框 a b 0 1 3 1 2 5 2 3 1 3 4 2 4
  • 在 ES6 模块中通过字符串访问导出函数

    考虑以下 exports handleEvent event export function handleEvent event do something with event 这在使用 babel 转译节点模块时有效 因为它将所有内容粘贴
  • 在 XSLT 1.0 中将 EDT 转换为 GMT

    我的输入值为 2017 年 9 月 12 日星期二 15 03 22 EDT 或 2017 09 12T15 03 22 0000000 我需要类似 2017 09 12T19 03 22Z 是否可以在 XSLT 1 0 中将 EDT 日期
  • 在 Android 中隐藏键盘的最佳方法

    我想知道在 EditText 输入文本后隐藏键盘的最佳方法 1 setonfocuschangelistener 是否仅在按下完成按钮或焦点从一个 EditText 更改为另一个时触发此侦听器 当我使用这个方法时 我无法隐藏键盘 2 set