2013-08-22 6 views
13

में एकाधिक बार बुलाया गया है मैं सेल के पुन: उपयोग पर काम कर रहा हूं और वर्तमान में मैं एडाप्टर की गेटव्यू विधि में काम कर रहा हूं और मुझे एक समस्या मिली है कि मेरी गेटव्यू विधि 9 गुना कहलाती है लेकिन इसे ऐप की शुरुआत में केवल 5 बार कॉल करना चाहिए क्योंकि मैं केवल 5 पंक्तियां प्रदर्शित कर रहा हूं।गेटव्यू एंड्रॉइड

public View getView(int position, View view, ViewGroup viewgroup) 
{ 
    ViewHolder holder=null; 

    if(view==null) 
     { 
       view = inflater.inflate(R.layout.my_row_layout, viewgroup, false); 
       Log.d("Testing","View is nuLL"); 
       holder.thumbnils = (ImageView)view.findViewById(R.id.Thumbnils); 
        holder.hover =(ImageButton)view.findViewById(R.id.hover); 
        holder.title =(TextView)view.findViewById(R.id.title); 
        holder.hoveroverlay =(ImageView)view.findViewById(R.id.hoveroverlay); 
       }view.setTag(holder); 
      } 
     else 
    { 
     Log.d("Testing","view is not null"); 

     holder = (ViewHolder) view.getTag(); 
     } 

      return view; 
     } 

      @Override 
public int getCount() { 
    // TODO Auto-generated method stub 

    if(data.size()%NumberOfCell==0) 
    { 
     //return Number rows in listview 
     return data.size() /NumberOfCell; 

    } 
    else 
    { 
     //If total number of videos are ODD than display one row extra for remaining videos 
     return data.size() /NumberOfCell+1; 
    } 

} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 1; 
} 

    Here is my xml 

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/imageView2" 
    android:layout_alignLeft="@+id/linearLayout1" 
    android:layout_below="@+id/linearLayout1" 
    android:scrollbars="none" 
    android:divider="#000000" 
     android:dividerHeight="2dp" 
    > 
</ListView> 
    </RelativeLayout> 

कृपया मेरी मदद करो लोग धन्यवाद .........

+0

यहां आप अपना विचार कहां बढ़ा सकते हैं? – Piyush

+0

क्षमा करें मैं प्रश्न में inflat कोड टाइप करना भूल गया .. –

+0

ठीक है .... नहीं .... और गिनती पाने और प्राप्त करने के लिए विधि क्या है? – Piyush

उत्तर

61

अपने सूचीदृश्य बनाओ fill_parent के बराबर ऊंचाई और इसे फिर से प्रयास करें ..

+1

यह काम करता है लेकिन अजीब मुद्दा .. यह क्यों काम करता है ?? –

+6

@NSArray Romain Guy के रूप में उनके उत्तर में सुझाया गया यह कोई मुद्दा नहीं है, जिस क्रम में getView() को बुलाया जाएगा और न ही कितनी बार कॉल किया जाएगा। अपने विशेष मामले में आप सूचीव्यू के साथ ऊंचाई = wrap_content देकर सबसे बुरी चीज कर रहे हैं। यह लेआउट टाइम पर एडाप्टर से कुछ बच्चों को मापने के लिए ListView को मजबूर करता है, यह जानने के लिए कि यह कितना बड़ा होना चाहिए। यह आपके द्वारा स्क्रॉल करने से पहले getView() में पास किए गए कनवर्ट व्यू के साथ ListView प्रदान करता है। –

+0

@NSArray अधिक जानकारी के लिए मेरी पोस्ट देखें http://stackoverflow.com/a/14108676/1939564 –

0

इस तरह का प्रयास करें ...

public View getView(int position, View convertView, ViewGroup viewgroup) 
{ 
View view = convertView; 
    ViewHolder holder=null; 

    if(convertView==null) 
     { 
       view = inflater.inflate(R.layout.my_row_layout, viewgroup, false); 
       Log.d("Testing","View is nuLL"); 
       holder.thumbnils = (ImageView)view.findViewById(R.id.Thumbnils); 
        holder.hover =(ImageButton)view.findViewById(R.id.hover); 
        holder.title =(TextView)view.findViewById(R.id.title); 
        holder.hoveroverlay =(ImageView)view.findViewById(R.id.hoveroverlay); 
       view.setTag(holder); 
      } 
     else 
    { 
     Log.d("Testing","view is not null"); 

     holder = (ViewHolder) view.getTag(); 
     } 
} 
संबंधित मुद्दे