LIstView中EditText添加TextWatcher,无法正确修改数据的问题

在adapter中有mDatas。

需要在EditText编辑完之后,将新的值赋给mDatas中。

之前的做法,继承实现了一个TextWatcher类,构造函数中获得当前被点击item的position。然后mDatas.get(position).setValue(s.toString());

可是不知道为什么,在输入时,Watcher里面的操作被执行多次,而且其他position中的数值也被修改了。从而不能做到修改指定地方值的功能。

暂时没有找到原因,用了个曲线救国的方法,等后面看看到底是什么原因。

temp solution:

在Activity中,通过adapter获得数据

for (int j = 0; j < mHolder.mainWorkerLv.getChildCount(); j++) {
                    LinearLayout layout = (LinearLayout) mHolder.mainWorkerLv.getChildAt(j);
                    EditText moneyEt = (EditText) layout.findViewById(R.id.et_money);
                    if (mMainWorkerAdapter.getItem(j).getWorker().getId() == serviceWorker.getWorker().getId()) {
                        serviceWorker.setMoney(Double.parseDouble(moneyEt.getText().toString()));
                        continue performance;
                    }
                }
时间: 2024-08-07 20:54:55

LIstView中EditText添加TextWatcher,无法正确修改数据的问题的相关文章

关于ListView中EditText在软键盘弹出后的焦点问题

转自:http://www.cnblogs.com/haofei/p/3305030.html 在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点. 解决办法:在getView()方法中添加监听器: editText.setOnTouchListener(new OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEve

【Android】ListView中EditText焦点问题

一.描述: 近期一个项目中需要开发一种类似表格的界面来显示和配置参数,Android并无直接类似表格的控件支持,我采用了ListView中布局EditText和TextView来实现,其中TextView用来显示参数表示符,EditText用来显示参数值,用一个自定义AlertDialog弹出显示,如下图所示. 二.问题: 开发出来的APK软件,在手机上操控是OK的,但在电视上无法操控,具体表现为: 三.解决: 1  通过设置focus停在ListView上,解决ListView无法点击的问题.

获得listview中的edittext文字

这周写应用的时候遇到一个问题,就是在listview中的edittext可以输入,但不能获得到edittext中输入的文字.解决的方法是给edittext添加TextWatcher监听事件,并在其中让edittext在输入时通过调用dispatchKeyEvent()方法一直获得焦点,最后在setOnKeyListener()中获得edittext输入的文字. 示例代码如下(代码全部写在adapter中): private boolean programmaticalTextChange = f

android edittext + listview 实现搜索listview中的内容

以前一直以为edittext中输入一些东西.然后可以检测listview中的内容很高大上.一直没有去尝试.现在项目中遇到了.特此过来尝试一番.结果发现挺简单的,效果还不错,主要就是用到了edittext的 textchange监听 以及listview的过滤.下面直接上截图: xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://

android edittext+listview进阶 实现搜索listview中的内容 定制自己的过滤器

上一次直接使用的是arrayadapter 以及 系统自带的simple_list1布局文件.但是开发中,我们基本是不会用到那么简单的cell的,下面就来说说如何定制自己的过滤器,让他想搜索什么内容就搜索什么内容 效果图: listview_cell布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.c

.NET winform 在listview中添加progressbar

找了好长时间没找到,后来索性自己写了一个: 首先,在往listview加载数据的事件里添加progressbar: foreach (string d in arr) { int index = lv.Items.Count + 1; item = new ListViewItem(new string[] { index.ToString(), d, "", "", "", "" }); lv.Items.Add(item)

EditText嵌在ListView中导致安卓键盘闪退的问题

今天遇到一个诡异的问题,在锤子和三星手机上出现了点击EditText结果键盘闪了一下又退下了,其他手机上却没有这个问题,搜了很久也没有找到,后来各种变换搜索词终于在StackOverFlow上找到了答案,在这里分享给大家. http://stackoverflow.com/questions/20406472/edittext-in-listview-loses-focus-when-pressed-on-android-4-x 究其原因是因为EditText在ListView中时,当EditT

安卓Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数

android 修改listview中adapter数据时抛出异常java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification问题

近日在做项目时遇到非必现crush,具体异常信息为: // Short Msg: java.lang.IllegalStateException // Long Msg: java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not mo