问题:用ListView显示cursor从sqlite3中查询出来的数据,适配器用的SimpleCursorAdapter,ListView中的item包含3个TextView和一个EditText,其中EditText是要数据数据,然后获取数据,保存到对应的数据库中。问题就在这里,如何获取EditText中的数据?
    小弟目前用的是:在对ListView添加adapter的时候就获取cursor中有多少条数据,然后在获取EditText数据的地方使用ListView中的getChildAt(int)方法获取在此位置上的View.最后通过View来获取EditText对象--获取值;
    问题:手机屏幕上一页只能显示6个item,无论cursor中有多少数据,也就是说无论有多少item,只能获取第一页的6个item对象,获取第7个对象的时候就提示NullPointException--没有第7个对象?
    求解:各位大虾,如何能挨个把每个对象都获取到?在网上看了很多帖子说重写BaseAdapter,但是我这个地方用到了数据库cursor,所以重写BaseAdapter我觉得不适用

解决方案 »

  1.   

    ListView只保留可见的组件,滚动时组件会被重用,不是有多少条内容就对应多少个组件。
      

  2.   

    那到底这个问题怎么解决呢?我现在又重写了SimpleCursorAdapter 在bindView中给EditText设置了监听addTextChangedListener 但是在afterTextChanged中获取数据保存到List中,但是每一个EditText获取到的数据都有好几个,如何设置过滤呢?
      

  3.   

    simpleCursorAdapter需要重写啊 
      

  4.   

    重写BaseAdapter并不会有多复杂