【Android】ListView中EditText焦点问题

SkySeraph Apr. 21st 2013

Email[email protected]

一、描述:

近期一个项目中需要开发一种类似表格的界面来显示和配置参数,Android并无直接类似表格的控件支持,我采用了ListView中布局EditText和TextView来实现,其中TextView用来显示参数表示符,EditText用来显示参数值,用一个自定义AlertDialog弹出显示,如下图所示。

【Android】ListView中EditText焦点问题_第1张图片

二、问题:

开发出来的APK软件,在手机上操控是OK的,但在电视上无法操控,具体表现为:

【Android】ListView中EditText焦点问题_第2张图片

三、解决:

1 通过设置focus停在ListView上,解决ListView无法点击的问题。方法如下

【Android】ListView中EditText焦点问题_第3张图片

2 关于问题2和3,本身和1就是互斥的,例如我将焦点手动设置到EditText上,此时无法响应点击ListView,更要命的,逻辑完全混乱,例如我按向下键时,光标停留在第一栏,而焦点已经已跟随遥控移动到了 下一栏,此时按OK键,修改的还是光标停留的那一栏的数据,如图3所示。 最终经过反复尝试,下述解决方法得以解决。

解决方法:在ListView中setOnItemSelectedListener的onItemSelected 和 onNothingSelected分别输入下述代码

【Android】ListView中EditText焦点问题_第4张图片

3 关于问题4,无法调出输入法问题,网上介绍的零零总总,绝大部分都是无用的,仅有一种方法是OK,原文链接在这,解决方法如下:

【Android】ListView中EditText焦点问题_第5张图片

四、说明:

1 关于android:descendantFocusability,有三个属性值,简述如下表,详述可参考这篇博文说明。

beforeDescendants

viewgroup会优先其子类控件而获取到焦点

afterDescendants

viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants

viewgroup会覆盖子类控件而直接获得焦点

更多相关文章

  1. android 焦点获取流程
  2. 后台动态添加布局文件、控件与动态设置属性2
  3. 一个关于android中ListView的子控件中按钮事件的简单方法
  4. 使用Android常用控件与布局实现美观的登录页面
  5. Android发光特效焦点框-遥控器版本
  6. 二、Android应用的界面编程(六)ProgressBar及其子类[SeekBar、Rati
  7. Android Studio 初步在代码中操作控件
  8. Android播放器歌词显示控件

随机推荐

  1. Android——build.prop 解析
  2. [Android(安卓)Pro] 完美Android(安卓)Cu
  3. Android怎么让RadioButton图片居中显示
  4. 疯狂android讲义学习总结---toggle与swit
  5. 在CentOS下搭建Android(安卓)开发环境
  6. Android(安卓)NDK带来什么
  7. Android实现插件化(热加载)和插件加密
  8. Android——体系架构 +四层
  9. 如何导入android中的sample例子到eclipse
  10. 系出名门Android(5) - 控件(View)之TextV