deepeweb.github.io

Adapters & ViewHolder in Android in Hindi

Android में Adapters का उपयोग ListView, GridView, RecyclerView जैसे UI Components में Data Binding के लिए किया जाता है। Adapters डेटा को Convert करके View में Show करते हैं।

What is an Adapter? - Adapter क्या है?

Types of Adapter - Adapter के प्रकार

1. BaseAdapter (Custom Adapter for Complex UI)

Implementation of BaseAdapter

Step 1: Create a Custom XML Layout (list_item.xml)

<TextView
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

Step 2: Create Custom Adapter (Java)

public class MyAdapter extends BaseAdapter {
    private Context context;
    private String[] data;

    public MyAdapter(Context context, String[] data) {
        this.context = context;
        this.data = data;
    }

    @Override
    public int getCount() { return data.length; }

    @Override
    public Object getItem(int position) { return data[position]; }

    @Override
    public long getItemId(int position) { return position; }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
        }
        TextView textView = convertView.findViewById(R.id.textView);
        textView.setText(data[position]);
        return convertView;
    }
}

Step 3: Set Adapter in Activity

ListView listView = findViewById(R.id.listView);
String[] items = {"Item 1", "Item 2", "Item 3"};
listView.setAdapter(new MyAdapter(this, items));

2. ArrayAdapter (For Simple ListView/GridView)

Implementation of ArrayAdapter (Short Code Example)

String[] items = {"Apple", "Banana", "Orange"};
ListView listView = findViewById(R.id.listView);

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter);

ViewHolder Pattern (Optimization in Adapters)

Implementation of ViewHolder in BaseAdapter

public class MyAdapter extends BaseAdapter {
    private Context context;
    private String[] data;

    public MyAdapter(Context context, String[] data) {
        this.context = context;
        this.data = data;
    }

    static class ViewHolder {
        TextView textView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
            holder = new ViewHolder();
            holder.textView = convertView.findViewById(R.id.textView);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.textView.setText(data[position]);
        return convertView;
    }
}



Request

अगर आपको यह article useful या interesting लगा हो, तो please इसे अपने dosto aur family ke साथ जरूर share करें। आपका एक छोटा सा कदम हमें और अच्छा content बनाने के लिए motivate करता है। Thank you!

ध्यान दें कि इस page पर आपको कुछ ads भी देखने को मिल सकते हैं। इसके लिए हम आपसे माफी चाहते हैं। हम इस content को तैयार करने में काफी मेहनत और time लगाते हैं, ताकि आपको valuable जानकारी मिल सके। इन्हीं ads की मदद से हम ये काम continue कर पाते हैं।

आपके support और understanding के लिए दिल से धन्यवाद।





Ad
Ad


Ad
Ad

Follow Us

Facebook Logo    Instagram Logo