मैं एंड्रॉइड डेवलपमेंट में जूनियर हूं और मैं अपने व्यूहोल्डर/ऑनबिंडव्यूहोल्डर के सर्वोत्तम कार्यान्वयन की तलाश में हूं।

जब वह एक टुकड़ा (सूची) बनाता है तो एंड्रॉइड स्टूडियो हमें क्या देता है:

public class MyItemRecyclerViewAdapter extends RecyclerView.Adapter<MyItemRecyclerViewAdapter.ViewHolder> {

    //some code

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        holder.mItem = mValues.get(position);
        holder.mIdView.setText(mValues.get(position).id);
        holder.mContentView.setText(mValues.get(position).content);
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public final View mView;
        public final TextView mIdView;
        public final TextView mContentView;
        public DummyItem mItem;

        public ViewHolder(View view) {
            super(view);
            mView = view;
            mIdView = (TextView) view.findViewById(R.id.item_number);
            mContentView = (TextView) view.findViewById(R.id.content);
        }

        //some code
    }

}

आइटम को ViewHolder को क्यों भेजा जाता है? और TextViews को अपडेट करने के लिए onBindViewHolder में उसका उपयोग क्यों नहीं किया जाता है? ऐशे ही :

public class MyItemRecyclerViewAdapter extends RecyclerView.Adapter<MyItemRecyclerViewAdapter.ViewHolder> {

    //some code

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        holder.mItem = mValues.get(position);
        holder.mIdView.setText(holder.mItem.id);
        holder.mContentView.setText(holder.mItem.content);
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public final View mView;
        public final TextView mIdView;
        public final TextView mContentView;
        public DummyItem mItem;

        public ViewHolder(View view) {
            super(view);
            mView = view;
            mIdView = (TextView) view.findViewById(R.id.item_number);
            mContentView = (TextView) view.findViewById(R.id.content);
        }

        //some code
    }

}

और अंत में मैं इस समय क्या कर रहा था। व्यूहोल्डर को आइटम नहीं भेज रहा है:

public class MyItemRecyclerViewAdapter extends RecyclerView.Adapter<MyItemRecyclerViewAdapter.ViewHolder> {

    //some code

    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {
        DummyItem mItem = mValues.get(position);
        holder.mIdView.setText(mItem.id);
        holder.mContentView.setText(mItem.content);
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public final View mView;
        public final TextView mIdView;
        public final TextView mContentView;

        public ViewHolder(View view) {
            super(view);
            mView = view;
            mIdView = (TextView) view.findViewById(R.id.item_number);
            mContentView = (TextView) view.findViewById(R.id.content);
        }

        //some code
    }

}

सबसे अच्छा तरीका क्या है?

0
Ben 19 सितंबर 2020, 21:08

1 उत्तर

सबसे बढ़िया उत्तर

मुझे नहीं पता कि आप किस बारे में बात कर रहे हैं, लेकिन जो मैं समझता हूं, आपके व्यू होल्डर में सभी यूआई और विधियां और तर्क शामिल हो सकते हैं, हालांकि मैं तीसरी विधि पसंद करता हूं क्योंकि यह बाकी 2 की तुलना में अधिक स्पष्ट है।

कहा जा रहा है कि कृपया देखें यहां AdaMc331 बताता है कि ये तरीके कैसे काम करते हैं और आपको उनका उपयोग कैसे करना चाहिए।

1
Hamza Abbas 19 सितंबर 2020, 18:50