EditText的焦点问题
问题说明:
activity中有个三级菜单,三个ListView嵌套,最后一层ListView的item中有EditText控件。要求EditText不仅能手动输入,还能点击加减进行改变。EditText改变后各级目录的得分情况要实时改变。
在EditText获取焦点的时候点击关闭二级目录,或者在EditText数字改变的时候刷新最外层的adapter时会报错--java.lang.IllegalArgumentException: parameter must be a descendant of this view。
原因分析:
出现这个bug的前提条件:当listview向下滚动了再返回时会调用HorizontalScrollView的onSizeChanged()方法,在onSizeChanged()方法中调用了findfocus方法得到返回的界面中当前拥有焦点的view。
解决方法:
在关闭二级目录或刷新adapter之前把焦点转移,直接落在某一指定的view上,或者在activity中声明一个空view然后Gone掉,让焦点落在空view上。
让EditText失去焦点、关闭软键盘并刷新adapater的代码参考:
tv_title.setFocusable(true);
tv_title.setFocusable(true);
tv_title.setFocusableInTouchMode(true);
tv_title.requestFocus();
tv_title.findFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
adapter.notifyDataSetChanged();
EditText的焦点问题的更多相关文章
- scrollview中edittext失去焦点问题
//edittext获取焦点后会瞬间失去,暂时使用这种笨方法解决(获取到焦点后过300ms再获取一次) public void requesFocus() { mEditName.setOnFocus ...
- android常见问题(一)
一:文本的颜色选择器: 在res目录下面创建color文件夹,在color文件夹下面创建font_style_colors.xml文件<?xml version="1.0" ...
- android的EditText重新获取焦点问题
在android开发过程中关于EditText在setFocusable(false);后,当需要再次获得焦点输入时设置setFocusable(true);后还是无法获得焦点的问题: 解决办法: 对 ...
- Android EditText不弹出输入法焦点问题的总结
转自:http://mobile.51cto.com/aprogram-403138.htm 看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的 ...
- Android中EditText焦点问题
https://www.jianshu.com/p/3d31d681f4bc 问题:当EditText失去焦点时做内容校验 场景:用户编辑EditText将内容清空,当点击空白地方时关闭软键盘,同时校 ...
- 关于ListView中EditText在软键盘弹出后的焦点问题
转自:http://www.cnblogs.com/haofei/p/3305030.html 在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点. ...
- edittext SearchView 失去焦点问题
edittext 默认自己主动获取焦点的 并且会出现小键盘非常烦人 <LinearLayout android:id="@+id/focus" ...
- ListView中含有EditText时候--要命的焦点问题迎刃而解
最近做项目的时候遇到了一个问题,就是在ListView的item上面含有一个EditText,要求是这样: 1当点击item的时候,item可以点击; 2当点击EditText的时候EditText也 ...
- 【Android】ListView中EditText焦点问题
一.描述: 近期一个项目中需要开发一种类似表格的界面来显示和配置参数,Android并无直接类似表格的控件支持,我采用了ListView中布局EditText和TextView来实现,其中TextVi ...
随机推荐
- Oracle 扩展表空间大小的几种方式
环境:windows操作系统 增加表空间大小的四种方法Meathod1:给表空间增加数据文件 ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRO ...
- xamarin 遇到的奇葩问题
未能找到路径“E:\platforms”的一部分. xamarin 安卓存档出现这样的错误 建议检查下ndk是否配置完整
- centos clamav杀毒软件安装配置及查杀,没想到linux下病毒比windows还多!
centos clamav杀毒软件安装配置及查杀,没想到linux下病毒比windows还多! 一.手动安装 1.下载(官网) cd /soft wget http://www.clam ...
- Centos 7 快速搭建IOS可用IPsec
安装 strongswan yum install -y http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/Packages/e/ ...
- sql左右连接的区别
数据表的连接有: 1.内连接(自然连接): 只有两个表相匹配的行才能在结果集中出现 2.外连接: 包括 (1)左外连接(左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表 ...
- [Python 从入门到放弃] 2. 列表的其它操作
1. 列表可以混合不同类型的数据项 movies=['<黄飞鸿之英雄有梦>','<寒战2>','<乘风破浪>'] 在这句代码中,数据项为电影名称,现在这个列表用来保 ...
- 图解RAID 0, RAID 1, RAID 5, RAID 10
RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失 ...
- nginx的一次跨域处理
1.事故 访问图片资源的时候,发生了跨域,具体报错如下所示: 403 Response to preflight request doesn't pass access control check: ...
- 并发编程之 SynchronousQueue 核心源码分析
前言 SynchronousQueue 是一个普通用户不怎么常用的队列,通常在创建无界线程池(Executors.newCachedThreadPool())的时候使用,也就是那个非常危险的线程池 ^ ...
- web开发中的两把锁之数据库锁:(高并发--乐观锁、悲观锁)
这篇文章讲了 1.同步异步概念(消去很多疑惑),同步就是一件事一件事的做:sychronized就是保证线程一个一个的执行. 2.我们需要明白,锁机制有两个层面,一种是代码层次上的,如Java中的同步 ...