在getView()上边还有几个重写的方法.
public long getItemId(int position) {
return position;
}
好像跟这有关

解决方案 »

  1.   

    @Override
    public int getCount()
    {
    return dataList.size();
    } @Override
    public Object getItem(int position)
    {
    return dataList.get(position);
    } @Override
    public long getItemId(int position)
    {
    return position;
    }
    这个我已经写了
      

  2.   

    我也有类似问题:
         gridview 界面 滑动的时候 非常卡 而且还有内存溢出的错误,请问有大侠知道该怎么解决么?
         我想知道 是不是和我查询的数据有关?
                      ItemListCursor = dbHelper.getData(sql, null);
    itemPageAdapter = new LVItemPageAdapter(this, ItemListCursor);
    lvAddOrder.setAdapter(itemPageAdapter);
    这里的sql要查的数据很多,我的疑问在于内存里是只存我显示的界面的数据 还是把查询的数据都存了?
    我获取的有数据的cursor和sql有关么? 
      

  3.   

    这个根本原因是跟布局有关的。
    listview本身是个特殊的控件,它的item能表示出来多少个是不确定。
    当你滑动界面的时候,整个布局是在重绘的,这样listview会反复的调用getview来计算该显示出多少个item。
    网上有很多说法来解决这个问题,主流的还是固定布局(整屏),让在滑动的时候listview不再重新计算显示的个数。
    这样的方法能解决问题,但是在布局复杂多控件的时候移植性比较差。我一般遇到这样的情况时,尽量让0的位置只显示固定内容,不去取多余的数据(0的数据可以在析构函数内取出来),这样即使反复调用也不会有太大的影响。
    既然系统这么反复的调用,固有其原由,来满足显示效果。
    一般还是习惯以最小的代价保留系统原始的功能。小弟拙见,望对大家有用!
      

  4.   

    用listView调用adapter时,listview控件设置为整屏可以做到显示屏幕不卡,但是用gridView调用adapter时,设置gridview控件为整屏,却做不到这种效果,不知道有谁遇到过这种问题,求解!!!
      

  5.   

    只要把listview的高度设为fill_parent ,把父控件的高度设为固定值,就行了