位置: 编程技术 - 正文
推荐整理分享如何为listview的每项中edittext控件添加textwacher(listview item),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:listview在哪里,给listview填充数据的方法,listview item,给listview填充数据的方法,如何在listview中添加按钮,如何在listview中添加数据,怎么给listview赋值,如何在listview中添加数据,内容如对您有帮助,希望把文章链接给更多的朋友!
listview中的每项都有一个edittext,而且现在需要实时监听该edittext的输入,在listview的外部进行改变(例如用户修改单价,外部的总价需要变化)
添加监听器的代码:
这样就能够保证,每个edittext的textwacher不会被添加多次,而且listview滑动的时候也能够正确的工作还有需要注意的是在textwacher里面需要使用holder.position来表示当前edittext的位置,并且需要更新该holder的positioin
这时就要提到一个问题是,listview和gridview的getview 可能会调用多次,原因是如果listview的高度是wrap_content的话,listview就会去调用计算子view的高度,最后来计算listview的整体高度,所以造成会调用多次:
详细介绍
其实按照正常的角度来说,调用多次getview方法并没有什么错误,因为前面的getview方法返回的view并不会添加进入listview中,仅仅是用作计算高度,但是现在非常奇怪的现象是添加进listview中那个view里面的edittext的textwacher会回调很多次,而且回调内容很奇怪,不明原因,所以解决办法是修改textwacher里面的回调方法中加入
两个函数中的其中一个来标识该edittext的父view是否是被添加进listview中的那个view,暂时想到这个解决方法,具体原因也是不明白,有遇到的告诉小弟还有一个是,listview嵌套listview,重写内层listview的onmeasure方法,结果是里面的listview会一次性调用所有项的getview方法,不会动态随着屏幕的移动而复用convertview,所以这时内层listview的edittext不会出现edittext输入了内容,拉倒屏幕外,再拉回这项之后,该edittext上次输入的内容没有保存的情况。但是如果单独一个listviewedittext就会出现这种情况,最好的办法就是定义一个map去保存每个edittext的输入
魅族-魅蓝note无法链接adb解决办法 在mac终端执行:$echo0x2a~/.android/adb_usb.ini$adbkill-server$adbdevices第一行解释:直接把adb_usb.ini里面的内容清空,然后把0x2a写在adb_usb.ini里面第二行不执行
java多线程死锁 原文链接作者:JakobJenkov译者:申章校对:丁一java中死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程
android studio ndk编程 配置 参考:
标签: listview item
本文链接地址:https://www.jiuchutong.com/biancheng/378151.html 转载请保留说明!友情链接: 武汉网站建设