zoukankan      html  css  js  c++  java
  • 【Android】ListView中EditText焦点问题

    【Android】ListView中EditText焦点问题

    SkySeraph Apr. 21st 2013

    Emailskyseraph00@163.com

     一、描述:

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

     

    二、问题:

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

     

     三、解决:

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

    关于问题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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    《编程珠玑,字字珠玑》读书笔记完结篇——AVL树
    中国人,不能自卑,要自强于世界民族之林
    做饭方法
    创建一个强名称密钥文件+ 如何在 Visual C# .NET 中将程序集安装到全局程序集缓存中
    .Net 题目
    页面传值的另一种办法
    成功的12条黄金法则
    English学习资料大全
    .NET中的Serialization
    页面标签使用 实现定位
  • 原文地址:https://www.cnblogs.com/skyseraph/p/3033848.html
Copyright © 2011-2022 走看看