listview中每个item都有一个edittext,怎么把用户输入edittext的值保存到数据库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了listview中每个item都有一个edittext,怎么把用户输入edittext的值保存到数据库?相关的知识,希望对你有一定的参考价值。
1.滑动listview的时候,会多次插入数据库,2.在aftertextchanged的方法中存入数据库时,一次存入好几条
给EditText设置一个输入前后的状态,用hashMap或者数组保存EditText每个EditText输入前和输入后的状态。在getView中判断状态就不会出问题了追问有做过类似的需求吗?EditText输入前的状态放在哪块好呢?
追答//tieba.baidu.com/i/sys/jump?un=%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" onclick="Stats.sendRequest(\'fr=tb0_forum&st_mod=pb&st_value=atlink\');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" target="_blank" class="at">血刺小闯丶瞽倕 :用数组吧,数组大小为adapter数据大小,并且数组为boolean,里面都是false,在EditText的输入事件中先判断 :数组【position】的值为true时,直接return;掉结束,为false就添加到数据库中去,并且将设置 :数组【position】=true。
追问这样只能解决滑动时重复插入数据吧,输入数字时多次调用aftertextchanged方法,也会多次插入数据库啊,这个该如何解决呢
参考技术A 重写getview,判断textview的内容有没有发生变化,再添加追问已经给edittext增加了TextChangedListene,输入一个数字,就会往数据库中插一条数据啊
追答//tieba.baidu.com/i/sys/jump?un=%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" onclick="Stats.sendRequest('fr=tb0_forum&st_mod=pb&st_value=atlink');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" target="_blank" class="at">血刺小闯丶瞽倕 :不要这样监听,自己写一个判断就行
参考技术B 估计会多次调用after事件追问是多次调用了getview,after也会多次调用,比如先输入1,插入到数据库1,(有时候插入好几条1)接着输入2,往数据中插入一条12,
追答//tieba.baidu.com/i/sys/jump?un=%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" onclick="Stats.sendRequest('fr=tb0_forum&st_mod=pb&st_value=atlink');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" target="_blank" class="at">血刺小闯丶瞽倕 :是啊,有变化就会调用
追问那有什么好的办法吗
追答//tieba.baidu.com/i/sys/jump?un=%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" onclick="Stats.sendRequest('fr=tb0_forum&st_mod=pb&st_value=atlink');" onmouseover="showattip(this)" onmouseout="hideattip(this)" username="%D1%AA%B4%CC%D0%A1%B4%B3%D8%BC%EE%AD%82%85" target="_blank" class="at">血刺小闯丶瞽倕 :输入过程中就要插入数据?
追问是的啊,没有button之类的按钮啊
参考技术C 在生命周期onpause存下 参考技术D 你这个监听器,edittext每次加一个字符都会触发一次啊追问是啊,该如何解决呢
第5个回答 2015-08-04 你怎么写的 aftertextchanged 方法追问 public void afterTextChanged(Editable str,
ViewHolder viewHolder)
cacheData(str.toString(), position_shop);
databaseUtil.insertShoppingCart(list .get(position_shop));
cachedata方法是用来保存商
你可以在 Activity 中 自定义 TextChangedListene
接口。传到adpter 中,给每一个item 的editeView 加上监听。这样响应的时候只会响应 你修改的一条的信息,不会多个。
我是在adapter中自定义了一个TextChangedListene
private abstract class CustTextWatch implements TextWatcher
应该和在actitity中是一样的啊,
现在滑动会插入数据库多条,不滑动,也会插入几条啊
不滑动时多次调用afterchanged方法,调一次往数据库插一条啊
应该是 初始化的时候 调用了监听。没有实际做过类似的功能。是不是因为复用的原因,因为采用了复用,导致editText 值改变,然后调用。
你在editView 赋值之前把监听设置为空 ,然后在赋值后 再设置监听试试
以上是关于listview中每个item都有一个edittext,怎么把用户输入edittext的值保存到数据库?的主要内容,如果未能解决你的问题,请参考以下文章
listview中的每一个Item都有edittext,如何能够让listview的item和edittext都能响应点击消息