【Android】ListView中EditText焦点问题

 

1、描述:

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

 

2、问题:

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

 

 3、解决:

 经过设置focus停在ListView上,解决ListView没法点击的问题。方法以下布局

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

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

 

 

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

 

 4、说明:

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

beforeDescendantsci

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

afterDescendantsget

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

blocksDescendants

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

相关文章
相关标签/搜索