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

Android में RecyclerView के साथ अंतहीन सूची को कैसे कार्यान्वित करें?

<घंटा/>

यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में RecyclerView के साथ एक अंतहीन सूची को कैसे लागू करूं।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

बिल्ड ग्रेडल (मॉड्यूल ऐप) में निम्नलिखित निर्भरता जोड़ें -

<पूर्व>कार्यान्वयन 'com.android.support:cardview-v7:28.0.0'कार्यान्वयन 'com.android.support:recyclerview-v7:28.0.0'

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

 

चरण 3 - निम्न कोड को src/MainActivity.java

में जोड़ें <पूर्व>आयात androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.LinearLayoutManager;import androidx.recyclerview.widget.RecyclerView;import android.os.Bundle;import android.os.Handler;आयात java.util.ArrayList;सार्वजनिक वर्ग MainActivity AppCompatActivity का विस्तार करता है {RecyclerView recyclerView; RecyclerViewAdapter recyclerViewAdapter; ArrayListrowsArrayList =new ArrayList<>(); बूलियन लोड हो रहा है =झूठा; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); recyclerView =findViewById (R.id.recyclerView); पॉप्युलेटडेटा (); इनिट एडेप्टर (); initScrollListener (); } निजी शून्य populateData() { के लिए (int i =0; i <10; i++) {rowArrayList.add("Number" + i); } } निजी शून्य initAdapter() {recyclerViewAdapter =नया RecyclerViewAdapter(rowsArrayList); recyclerView.setLayoutManager (नया LinearLayoutManager (getApplicationContext ())); recyclerView.setAdapter(recyclerViewAdapter); } निजी शून्य initScrollListener () { recyclerView.addOnScrollListener (नया RecyclerView.OnScrollListener () { @ ओवरराइड सार्वजनिक शून्य onScrollStateChanged (@NonNull RecyclerView recyclerView, int newState) { super.onScrollStateChanged (recyclerView, newState); } @ स्क्रॉल ओवरराइड सार्वजनिक शून्य पर NonNull RecyclerView recyclerView, int dx, int dy) {super.onScrolled(recyclerView, dx, dy); LinearLayoutManager रैखिक लयआउट मैनेजर =(LinearLayoutManager) recyclerView.getLayoutManager(); अगर (!isLoading) {if (PoarlinearLayoutManager!=null &&lineLayoutManager.findLasibleVisibleItemsition () ==RowArrayList.size () - 1) {// सूची के नीचे! loadMore (); isLoading =true; } }}}); } निजी शून्य लोडअधिक () { RowArrayList.add(null); recyclerViewAdapter.notifyItemInserted(rowsArrayList.size() - 1); हैंडलर हैंडलर =नया हैंडलर (); हैंडलर.पोस्टडेलेड (नया रननेबल () {@ ओवरराइड पब्लिक वॉयड रन () { RowArrayList.remove (rowsArrayList.size () - 1); int स्क्रॉलपोजिशन =RowArrayList.size (); recyclerViewAdapter.notifyItemRemoved (scrollPosition); int currentSize =scrollPosition; int nextLimit =currentSize + 10; जबकि (currentSize - 1

चरण 4 - एक नया जावा क्लास (RecyclerViewAdapter.java) बनाएं और निम्नलिखित कोड जोड़ें -

<पूर्व>पैकेज app.com.sample;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ProgressBar;import android.widget.TextView;import java.util. सूची;आयात androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView;पब्लिक क्लास RecyclerViewAdapter,RecyclerView.Adapter {निजी अंतिम int VIEW_TYPE_ITEM =0; निजी सूची <स्ट्रिंग> mItemList; RecyclerViewAdapter (सूची <स्ट्रिंग> आइटम सूची) {mItemList =itemList; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { if (viewType ==VIEW_TYPE_ITEM) { व्यू व्यू =LayoutInflater.from(parent.getContext()).inflate(R.layout.item_row, माता-पिता, झूठा); नया आइटम व्यूहोल्डर लौटाएं (देखें); } और {देखें दृश्य =LayoutInflater.from(parent.getContext()).inflate(R.layout.item_loading, parent, false); नया लोडिंग व्यूहोल्डर लौटाएं (देखें); } } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { अगर (आइटम व्यूहोल्डर का व्यूहोल्डर इंस्टेंस) {populateItemRows((ItemViewHolder) viewHolder, position); } और अगर (लोडिंग व्यूहोल्डर का व्यूहोल्डर इंस्टेंस) {शोलोडिंग व्यू ((लोडिंग व्यूहोल्डर) व्यूहोल्डर, स्थिति); } } @ ओवरराइड पब्लिक इंट getItemCount () {रिटर्न mItemList ==null? 0:mItemList.size (); } @Override सार्वजनिक int getItemViewType(int position) { int VIEW_TYPE_LOADING =1; वापसी mItemList.get(position) ==null ? VIEW_TYPE_LOADING :VIEW_TYPE_ITEM; } निजी वर्ग ItemViewHolder RecyclerView.ViewHolder को बढ़ाता है { TextView tvItem; ItemViewHolder(@NonNull देखें आइटम देखें) { सुपर (आइटम व्यू); tvItem =itemView.findViewById (R.id.textViewItem); } } निजी वर्ग LoadingViewHolder RecyclerView.ViewHolder को बढ़ाता है { प्रोग्रेसबार प्रोग्रेसबार; LoadingViewHolder(@NonNull View itemView) { सुपर (आइटम व्यू); प्रोग्रेसबार =itemView.findViewById (R.id.progressBar); } } निजी शून्य शोलोडिंग व्यू (लोडिंग व्यूहोल्डर व्यूहोल्डर, इंट पोजीशन) { } निजी शून्य पॉप्युलेट इटैमरो (आइटम व्यूहोल्डर व्यूहोल्डर, इंट पोजीशन) {स्ट्रिंग आइटम =mItemList.get (स्थिति); viewHolder.tvItem.setText (आइटम); }}

चरण 5 - एक नई लेआउट संसाधन फ़ाइल (item_row.xml) बनाएं और निम्नलिखित कोड जोड़ें -

 

चरण 6 - एक नई लेआउट संसाधन फ़ाइल (item_loading.xml) बनाएं और निम्न कोड जोड़ें -

 

चरण 7 - निम्न कोड को androidManifest.xml में जोड़ें

 <एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />   

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

Android में RecyclerView के साथ अंतहीन सूची को कैसे कार्यान्वित करें?


  1. एंड्रॉइड में सर्च व्यू का उपयोग कैसे करें?

    यह उदाहरण दर्शाता है कि मैं android में SearchView का उपयोग कैसे कर सकता हूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 - निम्न क

  1. Android पर SearchView के साथ RecyclerView को कैसे फ़िल्टर करें?

    यह उदाहरण दर्शाता है कि Android पर एक SearchView के साथ RecyclerView को कैसे फ़िल्टर किया जाए। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

  1. एंड्रॉइड में डेटाबेस के साथ रीसाइक्लरव्यू का उपयोग कैसे करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में डेटाबेस के साथ रीसाइक्लरव्यू का उपयोग कैसे करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। निम्नलिखित निर्भरता को build.gradle में जोड़ें (मॉड्यूल:ऐप) कार्यान्