大虾们救急啊,现在碰到一个问题搞好好久都没弄出来,ListView中点击Item就显示出点击中Item的ImageView组件。不删除Item的时候这个效果能显示出来,不知道是什么原因,我删除ListView中的某个Item,再点击OnItemClick()时候,数据会显示出来,但那个被点击的Item中的ImageView他就不会显示出来了,调试发现我调用listAdapter.notifyDataSetChanged()函数,但那个Adapter中的getView()函数不会执行,不知道是什么原因?  大家帮我分析造成这种它不执行getView()函数的原因是什么?

解决方案 »

  1.   

    假设你的ListView控件名称为listview,
    那么在删除操作后,用下面代码刷新
    listview.setSelection(0);其中0表示ListView里面的第1个位置,代码运行后将会返回到ListView的第1个位置,如果需要返回到最后一个位置,则用listview.setSelection(listview.getCount()-1);
      

  2.   

    最近也用到了listview控件,而且对listview的item也有修改,增加,删除等操作,还没遇到什么问题,运行都比较正常,不知道LZ的adapter中的getView是怎么写的?
      

  3.   

    自己实现的好像没有Android自带的好。最近被这个ListView的东西搞的头好疼,这个东西太麻烦了。唉
      

  4.   

     不知道是不是这个原因,删除完之后,我又重新设置了数据源,可能导致那个listView对象不是指向同一个引用~~~
      

  5.   

    1楼说的对,删除的时候,要删除Adapter中的数据源,没有调用getView()可能是数据源没有改变。源码中调用更新的函数,是对Adapter的数据进行比较
      

  6.   

     呵,这个问题我解决了,原来是我又重新new了个ListViewAdapter
      

  7.   

    我也碰到这个问题,要自定义ArrayAdapter类,但是不知道怎么重写getView()方法,能指点下吗?谢谢啦
      

  8.   

    楼主 你是怎么改的?“原来是我又重新new了个ListViewAdapter
    ”是什么意思啊
      

  9.   

    得到数据更新的时候确认是在
    UI线程中执行~否则不会去调getview方法