2012-12-30 10 views
13

मैं अपने एंड्रॉइड ऐप में व्यूहोल्डर को लागू करने की कोशिश कर रहा हूं, लेकिन मुझे लगता है कि उस व्यूहोल्डर को किसी प्रकार के लिए किसी भी सुझाव के बिना हल नहीं किया जा सकता है। किसी को पता है कि इस के आसपास कैसे जाना है?एंड्रॉइड: कार्यान्वयन व्यूहोल्डर

+0

यहां व्यूहोल्डर का एक अच्छा उदाहरण है http://smr-android.blogspot.ru/2014/04/implementing-listview-with-swipe.html –

उत्तर

28

ऐसा इसलिए है क्योंकि ViewHolder एंड्रॉइड एसडीके से है, तो आप इसे स्वयं बनाते हैं। मैं find पर निर्भर करता हूं, ViewHolder एक कार्यान्वयन है जो बड़े क्षेत्र के लिए व्यू (आमतौर पर एक सूची दृश्य में प्रति पंक्ति) संग्रहीत करता है, इसलिए यह एक प्रकार का सहायक वर्ग और कैश तंत्र है। यह एक example है जो मैंने एंड्रॉइड डेवलपर्स पर पाया है कि ViewHolder में क्या होगा।

static class ViewHolder { 
    TextView text; 
    TextView timestamp; 
    ImageView icon; 
    ProgressBar progress; 
    int position; 
} 

फिर आप इसे ListAdapter या इसी तरह की कक्षा में कार्यान्वित कर सकते हैं।

+0

पृष्ठ # 36: http://www.slideshare.net/arslantumbin/प्रदर्शन अनुकूलन के लिए android-32797106 –

1
**Create a Holder class** 

protected static class ViewHolderItems 
{ 
    private ImageView mStoreImage; 
    private TextView mStoreName; 
} 

And use In getView method of adapter 

public View getView(int position, View convertView, ViewGroup parent) { 

     ViewHolderItems viewHolder; 
     if (inflater == null) 
      inflater = (LayoutInflater) activity 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.coupen_row, null); 
      viewHolder = new ViewHolderItems(); 
      viewHolder.mStoreImage = (ImageView) convertView.findViewById(R.id.storeImage); 

      viewHolder.mStoreName = (TextView) convertView.findViewById(R.id.storeName); 

      convertView.setTag(viewHolder); 

     } 
     else 
     { 
      viewHolder = (ViewHolderItems) convertView.getTag(); 
     } 

     return convertView; 
    } 
0

शायद आप RecyclerView.ViewHolder की तलाश में हैं जो एंड्रॉइड समर्थन lib का हिस्सा है।

इस लिंक gist by Paul Burke

public static class ItemViewHolder extends RecyclerView.ViewHolder implements 
     ItemTouchHelperViewHolder { 

    public final TextView textView; 
    public final ImageView handleView; 

    public ItemViewHolder(View itemView) { 
     super(itemView); 
     textView = (TextView) itemView.findViewById(R.id.text); 
     handleView = (ImageView) itemView.findViewById(R.id.handle); 
    } 

    @Override 
    public void onItemSelected() { 
     itemView.setBackgroundColor(Color.LTGRAY); 
    } 

    @Override 
    public void onItemClear() { 
     itemView.setBackgroundColor(0); 
    } 
} 

यह आपके लिए मतलब होगा यदि आप एक Android RecyclerView

इस मामले में वे एक वस्तु की जरूरत है दृश्य पकड़ करने के लिए साथ काम कर रहे थे से कोड की तरह

इतना है कि यह कर सकते हैं आवश्यकतानुसार सामग्री से भरा हो।

संबंधित मुद्दे