Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android RecyclerView में onItemClickListener का सर्वोत्तम विकल्प क्या है?

RecyclerView में आइटम क्लिक हैंडलिंग

यह उदाहरण Android RecyclerView में onItemClickListener के सर्वोत्तम विकल्प को दर्शाता है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।

चरण 2: res/layout/activity_main.xml में कोड जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <android.support.v7.widget.Toolbar
            android:id="@+id/appbarlayout_tool_bar"
            android:background="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|snap|enterAlways"
            app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>

उपरोक्त कोड में, हमने RecyclerView लिया है।

चरण 3: src/MainActivity.java में कोड जोड़ें

package com.example.myapplication;

import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.widget.TextView;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    TextView text;
    ArrayList<String> list = new ArrayList<>();
    private RecyclerView recyclerView;
    private CustomAdapter mAdapter;
    private OnClickInterface onclickInterface;

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = findViewById(R.id.appbarlayout_tool_bar);
        toolbar.setTitle("This is toolbar.");
        setSupportActionBar(toolbar);

        onclickInterface = new OnClickInterface() {
            @Override
            public void setClick(String abc) {
                if (abc != null) {
                    list.add(abc);
                    mAdapter.notifyDataSetChanged();
                }
            }
        };

        recyclerView = findViewById(R.id.recycler_view);
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(mLayoutManager);
        recyclerView.setItemAnimator(new DefaultItemAnimator());
        mAdapter = new CustomAdapter(this, list, onclickInterface);
        recyclerView.setAdapter(mAdapter);
        recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));

        list.add("sairamm");
        list.add("Krishna");
        list.add("prasad");
        // ... अधिक आइटम जोड़ें
    }
}

चरण 4: src/CustomAdapter.java में कोड जोड़ें

package com.example.myapplication;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
    Context context;
    ArrayList<String> list;
    OnClickInterface onClickInterface;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public TextView title;

        public MyViewHolder(View view) {
            super(view);
            title = view.findViewById(R.id.title);
        }
    }

    public CustomAdapter(Context context, ArrayList<String> list, OnClickInterface onClickInterface) {
        this.context = context;
        this.list = list;
        this.onClickInterface = onClickInterface;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_row, viewGroup, false);
        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
        myViewHolder.title.setText(list.get(i));
        myViewHolder.title.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onClickInterface.setClick("onItemClick");
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
}

चरण 5: res/layout/list_row.xml में कोड जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardElevation="10dp"
    app:cardCornerRadius="20dp"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical">
        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/logo" />
        <TextView
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="30sp" />
        <TextView
            android:id="@+id/textview2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Sairamkrishan"
            android:textSize="30sp" />
    </LinearLayout>
</android.support.v7.widget.CardView>

चरण 6: src/OnClickInterface.java में कोड जोड़ें

package com.example.myapplication;

public interface OnClickInterface {
    void setClick(String abc);
}

ऐप चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और डिफॉल्ट स्क्रीन देखें।

Android RecyclerView में onItemClickListener का सर्वोत्तम विकल्प क्या है?

अब TextView पर क्लिक करें, यह परिणाम दिखाएगा।

  1. बेजोड़ रोमांच के लिए टॉप 7 एंड्रॉइड सर्वाइवल गेम्स बेजोड़ रोमांच के लिए टॉप 7 एंड्रॉइड सर्वाइवल गेम्स

    मनुष्य के DNA की संरचना इस तरह से डिज़ाइन की गई है, जहां वे हर दिन जीवित रहने और जिंदा रहने के लिए संघर्ष करते हैं। यह सुविधा हमारे सिस्टम में गहराई से समाई हुई है और अनजाने में, हम इसे अपने दैनिक कार्यों में निष्पादित करते हैं। अगर नहीं, तो आप इस हार्ड-कोडेड सुविधा को लोकप्रिय सर्वाइवल गेम्स में अन

  1. 2022 के शीर्ष एंड्रॉयड बैकअप सॉफ्टवेयर: सुरक्षित, विश्वसनीय और उपयोग में आसान 2022 के शीर्ष एंड्रॉयड बैकअप सॉफ्टवेयर: सुरक्षित, विश्वसनीय और उपयोग में आसान

    ऐसे ढेर सारे कारण हैं कि हम बिना किसी दूसरे विचार के अपने एंड्रॉयड डिवाइस से प्यार करते हैं और इस पर भरोसा करते हैं ताकि दस्तावेज़, फ़ाइलें, तस्वीरें, फिल्में, वीडियो, एप्लिकेशन और क्या नहीं सहेज सकें। लेकिन क्या आप किसी भी कारण से पलक झपकते ही इस सभी डेटा को खोने से डरते नहीं हैं? हां, आप डेटा करप्

  1. विंडोज 10, 8 और 7 के लिए टॉप 10 एंड्रॉइड पीसी सूट: अपने एंड्रॉइड डिवाइस को सुरक्षित करें और सिंक करें विंडोज 10, 8 और 7 के लिए टॉप 10 एंड्रॉइड पीसी सूट: अपने एंड्रॉइड डिवाइस को सुरक्षित करें और सिंक करें

    एंड्रॉइड दुनिया भर में सबसे लोकप्रिय ऑपरेटिंग सिस्टम है। निर्विवाद रूप से अधिकांश लोग एंड्रॉइड स्मार्टफोन पसंद करते हैं क्योंकि वे निम्न-स्तरीय से लेकर उच्च-स्तरीय तक सभी बाजारों को कवर करते हैं। प्राथमिक कारण उपयोग में आसानी और उपलब्धता है। हम अपने संपर्क, चित्र, वीडियो और बहुत कुछ अपने डिवाइस पर स