关于 http://hi.baidu.com/blogofivan/blog/item/e572728206260ec39123d925.html解决方案, 我已经尝试了,给了ListView设定了固定的height,但是重复数据还是出现,蛋疼了一天,问题还是没有解决。 发高分贴,跪求解决方案!
item.xml布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <RelativeLayout android:id="@+id/rlay" android:layout_width="fill_parent" android:layout_height="wrap_content" >
     
       <ImageView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/wv_image"
  android:layout_width="88dip"
  android:background="@drawable/download"
  android:layout_height="88dip">
</ImageView>
 <TextView  android:layout_toRightOf="@id/wv_image" android:id="@+id/tvlabel" android:layout_marginTop="35dip" android:layout_width="wrap_content" android:gravity="center"  android:layout_height="wrap_content" android:text="@string/pre_download" android:textColor="@color/white" android:layout_alignParentRight="true"></TextView>

   </RelativeLayout>
   
</LinearLayout>
main.xml 布局<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"><RelativeLayout  android:layout_width="fill_parent" android:layout_height="fill_parent">
     <LinearLayout  android:layout_marginTop="3dip" android:orientation="vertical"   android:layout_height="wrap_content" android:id="@+id/LinearLayout01" android:layout_width="fill_parent">        <ListView android:id="@+id/lv_download" android:layout_height="fill_parent" android:layout_width="fill_parent">
          
       </ListView>

   </LinearLayout>
   
</RelativeLayout>
</LinearLayout>
  相关代码
 public class ListViewAdapter extends BaseAdapter {  
        View[] itemViews;  
        public ListViewAdapter(String []more_urls) {  
            itemViews = new View[more_urls.length];  
  
            int cnt = 0;
            for (int i = 0; i < itemViews.length; i++) {  
                itemViews[cnt] = makeItemView(more_urls[cnt],i);
                cnt ++;
            }
        }  
  
        public int getCount() {  
            return itemViews.length;  
        }  
  
        public View getItem(int position) {  
            return itemViews[position];  
        }
  
        public long getItemId(int position) {  
            return position;  
        }  
  
        private View makeItemView(String url,final int itemIndex) {  
            LayoutInflater inflater = (LayoutInflater) DownloadView.this  
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            
            // 使用View的对象itemView与R.layout.item关联   
            View itemView = inflater.inflate(R.layout.item_image_download, null);
            //itemView.setId(itemIndex);
            // 通过findViewById()方法实例R.layout.item内各组件   
            
            tvload = (TextView) itemView.findViewById(R.id.tvlabel);
            imageView = (ImageView) itemView.findViewById(R.id.wv_image);
            
            return itemView;  
        }
  
        public View getView(int position, View convertView, ViewGroup parent) {  
         
            if (convertView == null)  
                return itemViews[position];  
           
            return convertView;  
        } public void onItemClick(AdapterView<?> adv, View v, int position,
long id) {
}
    }  

=====================================================================================================
求分析,求解决方案

解决方案 »

  1.   

    list view貌似不是这么装载item的吧?看看android的api_demo,里面的list view花样很多的。
      

  2.   

    lz你就可以把list重复数据去掉,然后再显示哇
      

  3.   

    不知道要做什么,
    不会是item显示一个image和一个textview吧,如果是建议用adapter,simpleAdaper
      

  4.   

    楼主,你把if (convertView == null)去掉试试,或许能解决 
      

  5.   

    convertView可以缓存你的视图对象,但是你要保证getView的时候给convertView的文字赋值啊。public View getView(int position, View convertView, ViewGroup parent) {   
     
    View v = convertView;
    if (convertView == null)  { 
    v = itemViews[position];
    }
    v.setText("XXXX");
    return v;
      
    }
      

  6.   

    LISTVIEW的问题就是多啊
    去 看 去 看
    http://blog.csdn.net/redoffice/article/details/6666185
      

  7.   

    你可以 通过继承SimpleAdapter 去实现每个Item的View,没有必要搞得很复杂。
      

  8.   

    你基本没有理解到 adapter 生成view的原理。
    任何生成view的动作都应该放在getView 当中,直接在构造函数中生成所有的view是一种极其错误而且效率非常低的方式请认真了解adapter生成view的原理,以及api Demo中给出的adapter 范例。
      

  9.   

    同意楼上。listview最好还是用adapter。不然绝对不如直接scroll得了。listView利用adapter会有很多优化的。你多查查adapter吧。
      

  10.   

    private View makeItemView(String url,final int itemIndex) {  
    LayoutInflater inflater = (LayoutInflater) DownloadView.this  
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     
    // 使用View的对象itemView与R.layout.item关联  
    View itemView = inflater.inflate(R.layout.item_image_download, null);
    //itemView.setId(itemIndex);
    // 通过findViewById()方法实例R.layout.item内各组件  
     
    tvload = (TextView) itemView.findViewById(R.id.tvlabel);
    imageView = (ImageView) itemView.findViewById(R.id.wv_image);
     
    return itemView;  
    }这个中的代码去掉。然后在getView中写相关代码。试试吧