【Android】ListView中EditText焦点问题
【Android】ListView中EditText焦点问题
SkySeraph Apr. 21st 2013
Email:skyseraph00@163.com
一、描述:
近期一个项目中需要开发一种类似表格的界面来显示和配置参数,Android并无直接类似表格的控件支持,我采用了ListView中布局EditText和TextView来实现,其中TextView用来显示参数表示符,EditText用来显示参数值,用一个自定义AlertDialog弹出显示,如下图所示。
二、问题:
开发出来的APK软件,在手机上操控是OK的,但在电视上无法操控,具体表现为:
三、解决:
1 通过设置focus停在ListView上,解决ListView无法点击的问题。方法如下
2 关于问题2和3,本身和1就是互斥的,例如我将焦点手动设置到EditText上,此时无法响应点击ListView,更要命的,逻辑完全混乱,例如我按向下键时,光标停留在第一栏,而焦点已经已跟随遥控移动到了 下一栏,此时按OK键,修改的还是光标停留的那一栏的数据,如图3所示。 最终经过反复尝试,下述解决方法得以解决。
解决方法:在ListView中setOnItemSelectedListener的onItemSelected 和 onNothingSelected分别输入下述代码
3 关于问题4,无法调出输入法问题,网上介绍的零零总总,绝大部分都是无用的,仅有一种方法是OK,原文链接在这,解决方法如下:
四、说明:
1 关于android:descendantFocusability,有三个属性值,简述如下表,详述可参考这篇博文说明。
beforeDescendants |
viewgroup会优先其子类控件而获取到焦点 |
afterDescendants |
viewgroup只有当其子类控件不需要获取焦点时才获取焦点 |
blocksDescendants |
viewgroup会覆盖子类控件而直接获得焦点 |
作者:skyseraph
出处:http://www.cnblogs.com/skyseraph/
更多精彩请直接访问SkySeraph个人站点:http://skyseraph.com//
Email/GTalk: zgzhaobo@gmail.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?