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

Android में RecyclerView एडेप्टर डेटा कैसे अपडेट करें?

<घंटा/>

उदाहरण में आने से पहले, हमें पता होना चाहिए कि android में Recycler view क्या है। रिसाइकलर व्यू सूची दृश्य का अधिक उन्नत संस्करण है और यह व्यू होल्डर डिजाइन पैटर्न के आधार पर काम करता है। पुनर्चक्रण दृश्य का उपयोग करके हम ग्रिड और वस्तुओं की सूची दिखा सकते हैं।

यह उदाहरण दिखाता है कि उम्र के साथ छात्र का नाम प्रदर्शित करने वाला एक सुंदर छात्र रिकॉर्ड ऐप बनाकर रीसाइक्लर व्यू एडेप्टर को कैसे अपडेट किया जाए।

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

चरण 2 - बिल्ड.ग्रेड खोलें और रिसाइकलर व्यू और कार्ड व्यू लाइब्रेरी निर्भरताएं जोड़ें।

<पूर्व>प्लगइन लागू करें:'com.android.application'android {compileSdkVersion 28 defaultConfig { applicationId "com.example.andy.tutorialspoint" minSdkVersion 19 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner " } बिल्डटाइप्स {रिलीज {minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'} }}निर्भरता {कार्यान्वयन fileTree(dir:'libs', शामिल हैं:['*.jar'] ) कार्यान्वयन 'com.android.support:appcompat-v7:28.0.0' कार्यान्वयन 'com.android.support:design:28.0.0' कार्यान्वयन 'com.android.support.constraint:constraint-layout:1.1.3' कार्यान्वयन 'com.android.support:cardview-v7:28.0.0' कार्यान्वयन 'com.android.support:recyclerview-v7:28.0.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner :1.0.2' androidTestImplementation 'co m.android.support.test.espresso:espresso-core:3.0.2'}

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

   

उपरोक्त कोड में हमने विंडो मैनेजर में रिसाइकलर व्यू को रिलेटिव पैरेंट लेआउट के रूप में जोड़ा है और ऐड और रिमूव के रूप में दो बटन जोड़े हैं। रिसाइकलव्यू एडॉप्टर में डेटा जोड़ने के लिए बटन जोड़ें और रिसाइकलव्यू से डेटा को हटाने के लिए बटन को हटा दें।

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

में जोड़ें <पूर्व>पैकेज com.example.andy.tutorialspoint;import android.annotation.TargetApi;import android.os.Build;import android.os.Bundle;import android.support.annotation.RequiresApi;import android.support.v7.app .AppCompatActivity; आयात android.support.v7.widget.DividerItemDecoration; आयात android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android. view.View;आयात android.widget.Button;import android.widget.LinearLayout;import android.widget.Toast;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util .सूची;पब्लिक क्लास MainActivity AppCompatActivity का विस्तार करती है { Private RecyclerView recyclerView; निजी छात्र अनुकूलक छात्र अनुकूलक; निजी सूची छात्रडेटालिस्ट =नया ऐरेलिस्ट <> (); @TargetApi(Build.VERSION_CODES.O) @Override संरक्षित शून्य onCreate (बंडल सेव्ड इंस्टेंसस्टेट) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); बटन जोड़ें =findViewById (R.id.add); बटन निकालें =findViewById (R.id.remove); recyclerView =findViewById (R.id.recycler_view); छात्र एडाप्टर =नया छात्र एडाप्टर (छात्रडेटा सूची, मुख्य गतिविधि। यह); RecyclerView.LayoutManager प्रबंधक =नया LinearLayoutManager (यह); recyclerView.setLayoutManager (प्रबंधक); recyclerView.setAdapter (छात्र एडेप्टर); छात्रडेटा तैयार (); remove.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {if(studentDataList.size()>0) { studentDataList.remove(studentDataList.size() - 1); studentAdapter.notifyDataSetChanged() Toast.makeText(MainActivity.this, String.valueOf(studentDataList.size()), Toast.LENGTH_LONG).show(); }}}); add.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {if(studentDataList.size()> =0) {छात्रडेटा डेटा =नया छात्रडेटा ("रघु राम", 25); studentDataList.add (studentDataList.size(), data); studentAdapter.notifyDataSetChanged(); Toast.makeText(MainActivity.this, String.valueOf(studentDataList.size()), Toast.LENGTH_LONG).show(); }}}); } @RequiresApi(api =Build.VERSION_CODES.N) निजी शून्य StudentDataPrepare() {छात्रडेटा डेटा =नया छात्रडेटा ("sai", 25); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("साई राज", 25); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("रघु", 20); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("राज", 28); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("अमर", 15); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("बापू", 19); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("चंद्र", 52); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("डेरज", 30); छात्रडेटा सूची। जोड़ें (डेटा); डेटा =नया छात्रडेटा ("ईशांत", 28); छात्रडेटा सूची। जोड़ें (डेटा); Collections.sort(studentDataList, new Comparator() {@Override public int तुलना (studentData o1, studentData o2) {वापसी o1.name.compareTo(o2.name); }}); }}

उपरोक्त कोड में हमने रिसाइकलर व्यू और स्टूडेंट एडॉप्टर को जोड़ा है। उस छात्र एडाप्टर में हमने छात्रडेटालिस्ट को सरणी सूची के रूप में पास कर दिया है। छात्र डेटा सूची में छात्र और उम्र का नाम होता है। हमने ऐड और रिमूव के रूप में दो बटन जोड़े हैं। ऐड बटन का उपयोग करके हम आइटम को सरणी सूची में जोड़ सकते हैं जैसा कि नीचे दिखाया गया है -

if(studentDataList.size()> =0) {छात्र डेटा डेटा =नया छात्रडेटा ("रघु राम", 25); studentDataList.add(studentDataList.size (), डेटा); छात्र एडेप्टर। सूचित करेंडेटासेट चेंज (); Toast.makeText(MainActivity.this, String.valueOf(studentDataList.size()), Toast.LENGTH_LONG).show();}

उपरोक्त कोड में हम सत्यापन की जाँच कर रहे हैं जैसे कि सरणी सूची का आकार शून्य के बराबर या शून्य से अधिक है, हम सरणी सूची में डेटा जोड़े गए हैं और हमने विशेष विधि पर InformDataSetChanged () के रूप में उपयोग किया है। यह विधि एडॉप्टर को इंगित करती है क्योंकि डेटा सेट को संशोधित किया गया है इसलिए एडेप्टर आंतरिक रूप से दृश्य को ताज़ा करने जा रहा है।

सरणी सूची से डेटा को हटाने के लिए हमने नीचे दिखाए गए अनुसार सरणी सूची के साथ निकालें () का उपयोग किया है -

if(studentDataList.size()>0) { studentDataList.remove(studentDataList.size() - 1); छात्र एडेप्टर। सूचित करेंडेटासेट चेंज (); Toast.makeText(MainActivity.this, String.valueOf(studentDataList.size()), Toast.LENGTH_LONG).show();}

उपरोक्त कोड में हम आकार -1 के आधार पर डेटा निकाल रहे हैं। इसका मतलब है कि यह नीचे से डेटा को हटाने जा रहा है। डेटा को हटाने के बाद, हम InformDataSetChanged() का उपयोग करके एडेप्टर को अपडेट कर रहे हैं।

चरण 5 - संशोधित फ़ाइल src/StudentAdapter.java की सामग्री निम्नलिखित है।

पैकेज com.example.andy.tutorialspoint;import android.graphics.Color;import android.support.annotation.NonNull;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view .व्यू; इंपोर्ट android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;import java.util.List;import java.util.Random;class StudentAdapter RecyclerView.Adapter का विस्तार करता है { सूची <छात्रडेटा> छात्रडेटा सूची; सार्वजनिक छात्र एडाप्टर (सूची  छात्रडेटा सूची) { this.studentDataList =studentDataList; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { देखें itemView =LayoutInflater.from(viewGroup.getContext()) .inflate(R.layout.student_list_row, viewGroup, false); नया MyViewHolder (आइटम व्यू) लौटाएं; } @Override सार्वजनिक शून्य onBindViewHolder(MyViewHolder viewHolder, int i) {छात्रडेटा डेटा =studentDataList.get(i); रैंडम रैंड =नया रैंडम (); int currentColor =Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); viewHolder.parent.setBackgroundColor (currentColor); viewHolder.name.setText (data.name); viewHolder.age.setText(String.valueOf(data.age)); } @Override सार्वजनिक int getItemCount () {वापसी studentDataList.size (); } वर्ग MyViewHolder RecyclerView.ViewHolder को बढ़ाता है { TextView नाम, आयु; रैखिक लेआउट माता-पिता; सार्वजनिक MyViewHolder (आइटम व्यू देखें) {सुपर (आइटम व्यू); पैरेंट =itemView.findViewById (R.id.parent); नाम =itemView.findViewById (R.id.name); आयु =itemView.findViewById (R.id.age); } }} 

एडॉप्टर क्लास में हमारे पास नीचे दिखाए गए चार तरीके हैं -

  • ऑनक्रिएट व्यूहोल्डर () :- इसका उपयोग व्यू होल्डर बनाने के लिए किया जाता है और यह एक व्यू देता है।

  • onBindViewHolder() - यह बनाए गए व्यू होल्डर के साथ जुड़ने वाला है।

  • getItemCount () - इसमें सूची का आकार होता है।

  • MyViewHolder वर्ग - यह व्यू होल्डर इनर क्लास है जिसे RecyclerView.ViewHolder

    . द्वारा बढ़ाया गया है

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

रैंडम rnd =नया रैंडम (); int currentColor =Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));viewHolder.parent.setBackgroundColor(currentColor);

चरण 6 - xml res/layout/student_list_row.xml की संशोधित सामग्री निम्नलिखित है।

    

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

चरण 7 - संशोधित फ़ाइल src/ studentData.java की सामग्री निम्नलिखित है।

पैकेज com.example.andy.tutorialspoint;class studentData { String name; पूर्ण आयु; सार्वजनिक छात्रडेटा (स्ट्रिंग नाम, अंतर आयु) { यह नाम =नाम; यह उम्र =उम्र; }} 

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

Android में RecyclerView एडेप्टर डेटा कैसे अपडेट करें?

तत्व का आरंभिक अंत 25 वर्ष की आयु के साथ साई राज है, अब दो तत्वों को जोड़ना जैसा कि नीचे दिखाया गया है -

Android में RecyclerView एडेप्टर डेटा कैसे अपडेट करें?

अब सभी तत्वों को हटाकर आउटपुट इस तरह होना चाहिए -

Android में RecyclerView एडेप्टर डेटा कैसे अपडेट करें?


  1. एंड्रॉइड में टेक्स्ट व्यू में टेक्स्ट को जस्टिफाई कैसे करें?

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

  1. Android पर अपने ऐप्स कैसे अपडेट करें

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

  1. एंड्रॉइड में डेटा कैसे बांधें

    डेटा बाइंडिंग एक ऐसी तकनीक है जिसका उपयोग तब किया जाता है जब आप कुछ विज़ुअल उपयोगकर्ता इनपुट तत्वों के लिए जानकारी के टुकड़े (आपके डेटा) को गोंद करना चाहते हैं। इस प्रक्रिया में जब भी इनपुट अपडेट होता है तो उसके पीछे का डेटा भी अपडेट हो जाता है। यह एक नई अवधारणा से बहुत दूर है, और ऐसे ढेर सारे ढां