requestFocus 不适用于 EditText

2024-02-05

花了很多时间解决这个问题,看起来很简单,但我真的很累,找不到解决办法。 我有一个活动,活动有 4 个 EditText 组件,其中 2 个具有包含列表的弹出菜单(AlertDialog),下一个 - 禁用编辑,最后一个 - 是可编辑的,并且当用户点击它。

另外,我的根 LinearLayout 有 LinearLayout,它包含在relativelayout 中。最后一项是需要AdvBanner。最后一个 LinearLayout(RelativeLayout) 与根布局的底部对齐。

XML 中描述它的部分:

  <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_gravity="bottom"
      android:focusable="false"
      android:focusableInTouchMode="false" 
      android:gravity="bottom">
  <RelativeLayout 
      android:id="@+id/AdvLayoutReserveArea" 
      android:layout_width="fill_parent" 
      android:layout_height="50dp" 
      android:background="#FFFFFF"
      android:focusable="false"
      android:focusableInTouchMode="false" 
      android:gravity="bottom" /> 
  </LinearLayout>

当活动开始时,可​​编辑的 EditText 具有焦点GREEN边框和光标闪烁。几秒钟后,AdvBanner 被加载并显示。当它发生时,可编辑的 EditText 失去了焦点..从这一刻起,我的生活就像一场噩梦。

让我们一步步来看。

问题1。 If in 此时(当 Adv 加载并出现时)用户正在通过软键盘编辑 EditText 字段,焦点丢失,边框出现GRAY颜色,如果用户继续输入文本则没有结果 - 符号不会打印(EditText 中的光标太丢失)。

我认为任何用户都会感到恼火 - 当您输入文本时,光标处于非活动状态,因为在后台加载了一些广告并且它占据了自身的焦点。

为了解决这个问题,在加载 Adv 时的方法中(如图所示),我尝试通过 requestFocus 方法将焦点手动返回到 EditText。

public void onAdLoaded() 
    {
// TODO Auto-generated method stub
// add app specific code for this event here...
// called when an ad is successfully displayed on device            
    CountEdit1.requestFocus();
}

是的,光标返回到 EditText 字段,如果软键盘处于活动状态,用户仍然可以输入文本,但 EditText 字段的边框保持灰色...

NOTE:实际上我不确定聚焦的 EditText 的绿色和灰色边框之间的区别。绿色通常是当用户点击它时,而灰色,可能是当我们想要手动请求焦点时(使用 requestFocus() 等)

问题2。(作为解决问题#1 的结果)。 软键盘关闭后,如果用户点击可编辑的 EditText 字段,它将获得焦点,光标出现在里面,但再次显示软键盘没有任何反应!点击它不会显示软键盘,但看起来像复制模式下的编辑字段 - 当用户可以选择文本并将其剪切/复制到剪贴板时。

我的目标是第一眼看上去很简单。我只想保存光标并将焦点放在可编辑的 EditText 字段(CountEdit1)上,同时显示软键盘并且用户输入一些文本。 当用户点击 EditText 时的正常反应 - 像往常一样,只需向我显示软键盘即可!

我在这里阅读了所有问题,我结合了不同的方法(clearFocus、requestFocusFromTouch 等),只是没有足够的时间和空间来描述我为解决此问题所做的一切。主要问题如上所述。

希望得到帮助并解决问题... 提前致谢..


目标已经解决,解决方法比我想象的要容易。问题 #2 通过使用 onClick () 方法得到解决。使用clearFocus()和requestFocus()方法出现软键盘的充分条件。

   CountEdit1.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v)
      {
              CountEdit1.clearFocus();
        CountEdit1.requestFocus();
      }
    });

当用户点击 EditText 字段时,会出现软键盘。 固定的。

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

requestFocus 不适用于 EditText 的相关文章

  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • 与 Admob 广告单元 ID 混淆

    我跟着tutorial https developers google com admob android quick start在我的应用程序中创建广告横幅 到目前为止 这有效 我可以看到测试广告 但是 本教程指示我在两个不同的位置使用两
  • Android:“dp”到“px”转换?

    我正在读这篇文章 http developer android com guide practices screens support html http developer android com guide practices scre
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 获取 AlarmManager 中活动的 PendingIntents 列表

    我有办法获取活动列表PendingIntent在设备中 我开始工作AlarmManager我想看看我的PendingIntents 已正确创建和删除 也很高兴看到其他什么PendingIntent在那里 只是为了看看某些应用程序是否正在做一
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少

随机推荐

  • 片段示例中的 Android ListView [重复]

    这个问题在这里已经有答案了 在哪里可以找到使用示例ListView in Fragment 我知道样本中有一个例子 但不幸的是我找不到它 也许你可以建议一些东西 你的 Fragment 可以子类化列表片段 http developer an
  • Ubuntu graphviz 'sfdp' 不工作

    我正在尝试做一些Networkx Graphviz graphs 运行后 pos nx graphviz layout G prog sfdp 发生错误 说 Error remove overlap Graphviz not built w
  • Flutter桌面支持自定义文件扩展名

    我在尝试着支持自定义文件扩展名和我的颤振桌面应用程序 我没有找到任何相关内容 因为我来自移动开发 所以我不知道如何做到这一点MacOS 和 Windows Linux 一旦达到稳定 你能帮助我吗 这就是我要的 您单击目录中的 abc 文件F
  • Mercurial:如何才能只看到合并引入的更改?

    我正在努力养成进行代码审查的习惯 但是合并使这个过程变得困难 因为我不知道如何要求 Mercurial 仅显示合并引入的更改 这些更改在其父级中都不存在 或者 稍微正式一点 感谢 Steve Losh 显示合并中在其父项中不存在的每个块 并
  • 如何使用 yocto 构建简单的 qt 应用程序?

    I have yocto开发环境设置 我可以在其中进行 bitbake 并在目标中运行一个简单的 C 应用程序 现在我想尝试使用简单的 Qt 应用程序 当我执行时bitbake layers 显示层它在列表中显示meta qt5 meta
  • 使用 pandas 循环数据帧的最有效方法是什么?

    我想按顺序对数据帧中的财务数据执行我自己的复杂操作 例如 我使用以下 MSFT CSV 文件 取自雅虎财经 http finance yahoo com q hp s MSFT Date Open High Low Close Volume
  • 如何将字符编码大于127的字符串正确转换为字节数组?

    我正在从另一个系统检索使用代码页 437 编码的 ASCII 字符串 我需要将其转换为 Unicode 以便它们可以与其他 Unicode 字符串混合 这就是我正在处理的内容 var asciiString u0094 94 corresp
  • 为什么 SimpUserRegistry 在 EC2 实例上无法正常工作

    我在用SimpUserRegistry获取在线用户数 使用getUserCount 它在我的本地计算机上运行良好 但在只有弹性 IP 且没有负载均衡器的 AWS EC2 实例 尝试使用 Amazon Linux 和 Ubuntu 上运行不佳
  • 专门用于枚举类型参数的成员模板

    在下面的代码中 Foo
  • Vuex + 打字稿

    我正在将 JavaScript 项目转换为 TypeScript 但是 当我尝试让 Vue 使用 Vuex 时 出现类型错误 import Vue from vue import Vuex from vuex Vue use Vuex 看起
  • 签名已过期:现在早于错误:InvalidSignatureException

    我正在尝试使用 AWS API Gateway 和 IAM 授权的一个小示例 AWS API Gateway 生成以下端点 https xyz1234 execute api us east 2 amazonaws com Users us
  • collect2:致命错误:ld 终止于信号 11 [分段错误]

    我实际上无法用 C 编译一个简单的 helloworld 当我输入 gcc hello c 时 输出是 collect2 致命错误 ld 终止于信号 11 分段错误 有人有主意吗 我尝试重新安装 gcc g make cmake binut
  • 对于 2^1024 到 2^4096 范围内的数字,最快的确定性素性测试是什么?

    我正在编写加密协议的实现 到目前为止 我一直很难找到 1024 位到 4096 位整数 308 到 1233 位数字 最快的确定性素性测试 我知道有几种选择 但我无法找到现实世界的速度比较 具体来说 对于这种大小的一般随机数 AKS 测试与
  • 如何循环遍历从 snapshot.val() 收到的数据并根据键将其推送到数组

    我想循环遍历我收到的数据snapshot val 基于用户密钥并将它们推入数组中 我尝试在 for in 循环的帮助下做到这一点 如下所示 firebase database ref interests child I would like
  • 不允许表达式作为字段默认值

    我正在努力使 app可供全班使用 首先 我得到 不允许表达式作为字段默认值 其次 在第 5 行 我得到 未识别的变量 app 我怎样才能实现我的目标 class UserController extends XController var
  • 如何将动态生成的元素绑定到 Intersection Observer?

    这是我正在使用的代码 var ob new IntersectionObserver entries gt for var entry of entries console log works document querySelectorA
  • 将 Dbcontext 配置为瞬态

    在 ASP NET Core EntityFramework Core 中 services AddDbContext 方法会将指定的上下文添加为作用域服务 据我了解 这是 Microsoft 建议的 dbcontext 生命周期管理 然而
  • 如何从 javascript 访问顺风颜色

    我正在使用 ApexCharts 并且想使用我的顺风颜色 红色 500 等 来设计我的图表 我无法使用 css 类 因此无法在 post css 上下文中使用 theme 我也无法引用默认配置 因为我已经扩展了它 我可以导入我的新配置的颜色
  • 在 Swing 中叠加多个 JSlider

    是否可以覆盖多个 JSlider 以便我可以看到两者上的 拇指 我已尝试禁用轨道的绘制并将不透明度设置为 false 但其中一个仍然隐藏另一个 基本上我想创建一个允许用户定义范围的组件 而且我真的不想编写自定义组件 因为它具有滑块的大部分属
  • requestFocus 不适用于 EditText

    花了很多时间解决这个问题 看起来很简单 但我真的很累 找不到解决办法 我有一个活动 活动有 4 个 EditText 组件 其中 2 个具有包含列表的弹出菜单 AlertDialog 下一个 禁用编辑 最后一个 是可编辑的 并且当用户点击它