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

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

<घंटा/>

यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में डेटाबेस के साथ रीसाइक्लरव्यू का उपयोग कैसे करूं।

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

निम्नलिखित निर्भरता को build.gradle में जोड़ें (मॉड्यूल:ऐप)

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

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

  <बटन एंड्रॉइड:आईडी ="@ + आईडी / btnAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_marginEnd="16dp" android:text="ADD" android:padding="2dp" android:layout_marginBottom="4dp"/>

चरण 3 − नीचे बताए अनुसार लेआउट संसाधन फाइल बनाएं संबंधित कोड जोड़ें-

add_contacts.xml −

  

contact_list_layout.xml -

 android:padding="12dp">        

चरण 4 - एक जावा क्लास बनाएं और कॉन्टैक्ट एडॉप्टर.जावा में निम्न कोड जोड़ें

<पूर्व>आयात android.app.Activity;import android.content.Context;import android.content.DialogInterface;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.view. ViewGroup;आयात android.widget.EditText;import android.widget.Filter;import android.widget.Filterable;import android.widget.Toast;import java.util.ArrayList;import java.util.Objects;import androidx.appcompat.app .AlertDialog;import androidx.recyclerview.widget.RecyclerView;class ContactAdapter RecyclerView.Adapter लागू फ़िल्टर करने योग्य {निजी संदर्भ संदर्भ; निजी ऐरेलिस्ट <संपर्क> सूची संपर्क; निजी ऐरेलिस्ट <संपर्क> mArrayList; निजी स्क्लाइटडेटाबेस mDatabase; कॉन्टैक्ट एडॉप्टर (संदर्भ संदर्भ, ऐरेलिस्ट <संपर्क> सूची संपर्क) { यह। संदर्भ =संदर्भ; this.listContacts =listContacts; this.mArrayList =सूची संपर्क; mDatabase =नया स्क्लाइटडेटाबेस (संदर्भ); } @ ओवरराइड पब्लिक कॉन्टैक्ट व्यूहोल्डर ऑनक्रिएट व्यूहोल्डर (व्यूग्रुप पैरेंट, इंट व्यू टाइप) { व्यू व्यू =लेआउटइन्फ्लेटर.फ्रॉम (पैरेंट.गेट कॉन्टेक्स्ट ())। इनफ्लेट (आर.लेआउट। कॉन्टैक्ट_लिस्ट_लेआउट, पैरेंट, असत्य); नया कॉन्टैक्ट व्यूहोल्डर लौटाएं (देखें); } @Override सार्वजनिक शून्य onBindViewHolder(ContactViewHolder Holder, int position) {अंतिम संपर्क संपर्क =listContacts.get(position); धारक.tvName.setText (contacts.getName ()); धारक.tvPhoneNum.setText (contacts.getPhno ()); Holder.editContact.setOnClickListener (नया व्यू.ऑनक्लिक लिस्टनर () {@ ओवरराइड पब्लिक वॉयड ऑनक्लिक (व्यू व्यू) {editTaskDialog (संपर्क);}}); Holder.deleteContact.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View view) {mDatabase.deleteContact(contacts.getId()); ((गतिविधि) संदर्भ)। (गतिविधि) प्रसंग).getIntent ()); } }); } @ ओवरराइड पब्लिक फ़िल्टर getFilter() { नया फ़िल्टर लौटाएं () {@ ओवरराइड प्रोटेक्टेड FilterResults PerformFiltering (CharSequence charSequence) {स्ट्रिंग charString =charSequence.toString (); अगर (charString.isEmpty ()) {सूची संपर्क =mArrayList; } और {ArrayList<संपर्क> फ़िल्टर्डलिस्ट =नया ArrayList<>(); के लिए (संपर्क संपर्क:mArrayList) {if (contacts.getName().toLowerCase().contains(charString)) {filteredList.add(contacts); } } सूची संपर्क =फ़िल्टर की गई सूची; } FilterResults filterResults =new FilterResults(); filterResults.values ​​=listContacts; फ़िल्टर परिणाम लौटाएं; } @Override संरक्षित शून्य publishResults(CharSequence charSequence, FilterResults filterResults) { listContacts =(ArrayList) filterResults.values; सूचित करेंडेटासेट चेंज (); } }; } @ ओवरराइड पब्लिक इंट getItemCount () {रिटर्न लिस्टContacts.size (); } निजी शून्य संपादित करें टास्कडिअलॉग (अंतिम संपर्क संपर्क) { लेआउटइन्फ्लेटर इन्फ्लेटर =लेआउटइन्फ्लेटर.फ्रॉम (संदर्भ); सबव्यू देखें =inflater.inflate(R.layout.add_contacts, null); अंतिम संपादन टेक्स्ट नाम फ़ील्ड =subView.findViewById (R.id.enterName); अंतिम संपादन टेक्स्ट संपर्क फ़ील्ड =subView.findViewById (R.id.enterPhoneNum); अगर (संपर्क! =शून्य) {nameField.setText (contacts.getName ()); contactField.setText(String.valueOf(contacts.getPhno ())); } AlertDialog.Builder निर्माता =नया AlertDialog.Builder (संदर्भ); Builder.setTitle ("संपर्क संपादित करें"); बिल्डर.सेट व्यू (सबव्यू); बिल्डर.क्रिएट (); Builder.setPositiveButton("संपर्क संपादित करें", नया DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface डायलॉग, int जो) { अंतिम स्ट्रिंग नाम =nameField.getText ()। toString (); अंतिम स्ट्रिंग ph_no =contactField.getText ().toString (); अगर (TextUtils.isEmpty(name)) { Toast.makeText (संदर्भ, "कुछ गलत हो गया। अपने इनपुट मान जांचें", Toast.LENGTH_LONG)। शो (); } और {mDatabase.updateContacts( नए संपर्क(ऑब्जेक्ट्स.requireNonNull(contacts).getId (), नाम, ph_no)); ((गतिविधि) संदर्भ).फिनिश (); संदर्भ.स्टार्टएक्टिविटी (((गतिविधि) संदर्भ)। getIntent ()); } } } ); builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface डायलॉग, int जो) { Toast.makeText(context, "Task Canceled", Toast.LENGTH_LONG).show(); } } ); बिल्डर.शो (); }}

चरण 5 - एक जावा क्लास बनाएं और कॉन्टैक्ट्स.जावा में निम्न कोड जोड़ें

पब्लिक क्लास कॉन्टैक्ट्स { प्राइवेट इंट आईडी; निजी स्ट्रिंग नाम; निजी स्ट्रिंग फोन नंबर; संपर्क (स्ट्रिंग नाम, स्ट्रिंग फोनो) {this.name =नाम; this.phoneNumber =phno; } संपर्क (इंट आईडी, स्ट्रिंग नाम, स्ट्रिंग फोनो) {this.id =आईडी; यह नाम =नाम; this.phoneNumber =phno; } int getId () {रिटर्न आईडी; } सार्वजनिक शून्य setId (int id) {this.id =id; } सार्वजनिक स्ट्रिंग getName () {वापसी का नाम; } सार्वजनिक शून्य सेटनाम (स्ट्रिंग नाम) { यह नाम =नाम; } स्ट्रिंग getPhno() {वापसी फोन नंबर; } सार्वजनिक शून्य सेटफनो (स्ट्रिंग फोनो) {this.phoneNumber =phno; }} 

चरण 6 - एक जावा क्लास बनाएं और निम्न कोड को ContactViewHolder.java में जोड़ें

import android.view.View;import android.widget.ImageView;import android.widget.TextView;import androidx.recyclerview.widget.RecyclerView;class ContactViewHolder RecyclerView.ViewHolder { TextView tvName, tvPhoneNum; छवि दृश्य हटाएं संपर्क; ImageView संपादित करेंसंपर्क; कॉन्टैक्ट व्यूहोल्डर (आइटम व्यू देखें) {सुपर (आइटम व्यू); टीवीनाम =itemView.findViewById (R.id.contactName); tvPhoneNum =itemView.findViewById (R.id.phoneNum); deleteContact =itemView.findViewById (R.id.deleteContact); संपादित करें संपर्क =itemView.findViewById (R.id.editContact); }} 

चरण 7 - एक जावा क्लास बनाएं और निम्नलिखित कोड को SqliteDatabase.java में जोड़ें

<पूर्व>आयात android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import java.util.ArrayList;public वर्ग स्क्लाइटडेटाबेस SQLiteOpenHelper बढ़ाता है {निजी स्थिर अंतिम int DATABASE_VERSION =5; निजी स्थिर अंतिम स्ट्रिंग DATABASE_NAME ="संपर्क"; निजी स्थिर अंतिम स्ट्रिंग TABLE_CONTACTS ="संपर्क"; निजी स्थिर अंतिम स्ट्रिंग COLUMN_ID ="_id"; निजी स्थिर अंतिम स्ट्रिंग COLUMN_NAME ="संपर्कनाम"; निजी स्थिर अंतिम स्ट्रिंग COLUMN_NO ="फ़ोन नंबर"; स्क्लाइटडेटाबेस (संदर्भ संदर्भ) {सुपर (संदर्भ, DATABASE_NAME, नल, DATABASE_VERSION); } @ओवरराइड सार्वजनिक शून्य onCreate(SQLiteDatabase db) { स्ट्रिंग CREATE_CONTACTS_TABLE ="तालिका बनाएं" + TABLE_CONTACTS + "(" + COLUMN_ID + "पूर्णांक प्राथमिक कुंजी," + COLUMN_NAME + "पाठ," + "COLUMN_NO" + "COLUMN_NO; db.execSQL (CREATE_CONTACTS_TABLE); } @अपग्रेड पर सार्वजनिक शून्य को ओवरराइड करें (SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL ("यदि मौजूद है तो ड्रॉप टेबल" + TABLE_CONTACTS); ऑनक्रेट (डीबी); } ArrayList listContacts() { String sql ="सेलेक्ट * से" + TABLE_CONTACTS; SQLiteDatabase डीबी =this.getReadableDatabase (); ArrayList<संपर्क> storeContacts =new ArrayList<>(); कर्सर कर्सर =db.rawQuery (एसक्यूएल, नल); अगर (cursor.moveToFirst ()) {करना {int id =Integer.parseInt(cursor.getString(0)); स्ट्रिंग नाम =कर्सर। गेटस्ट्रिंग (1); स्ट्रिंग फोनो =कर्सर। गेटस्ट्रिंग (2); storeContacts.add (नए संपर्क (आईडी, नाम, फोनो)); } जबकि (कर्सर.moveToNext ()); } कर्सर.क्लोज़ (); वापसी की दुकान संपर्क; } शून्य addContacts (संपर्क संपर्क) {ContentValues ​​value =new ContentValues(); value.put (COLUMN_NAME, contact.getName ()); मान।पुट (COLUMN_NO, संपर्क। getPhno ()); SQLiteDatabase डीबी =this.getWritableDatabase (); db.insert (TABLE_CONTACTS, शून्य, मान); } शून्य अद्यतन संपर्क (संपर्क संपर्क) { ContentValues ​​​​मान =नई सामग्री मान (); value.put (COLUMN_NAME, contact.getName ()); मान।पुट (COLUMN_NO, संपर्क। getPhno ()); SQLiteDatabase डीबी =this.getWritableDatabase (); db.update(TABLE_CONTACTS, मान, COLUMN_ID + "=?", नई स्ट्रिंग [] {String.valueOf (contacts.getId ())}); } शून्य हटाएं संपर्क (इंट आईडी) {SQLiteDatabase डीबी =this.getWritableDatabase (); db.delete(TABLE_CONTACTS, COLUMN_ID + "=?", नई स्ट्रिंग [] {String.valueOf (id)}); }}

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

में जोड़ें आयात करें .बंडल;आयात android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;import java.util. ArrayList; सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है {निजी SqliteDatabase mDatabase; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); RecyclerView contactView =findViewById(R.id.myContactList); LinearLayoutManager रैखिक लयआउट प्रबंधक =नया LinearLayoutManager (यह); contactView.setLayoutManager(linearLayoutManager); contactView.setHasFixedSize (सच); mDatabase =नया स्क्लाइटडेटाबेस (यह); ArrayList<संपर्क> सभी संपर्क =mDatabase.listContacts (); अगर (allContacts.size()> 0) {contactView.setVisibility(View.VISIBLE); संपर्क एडाप्टर एमएडाप्टर =नया संपर्क एडाप्टर (यह, सभी संपर्क); contactView.setAdapter (mAdapter); } और { contactView.setVisibility(View.GONE); Toast.makeText (यह, "डेटाबेस में कोई संपर्क नहीं है। अभी जोड़ना शुरू करें", Toast.LENGTH_LONG)। शो (); } बटन btnAdd =findViewById(R.id.btnAdd); btnAdd.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें देखें) {addTaskDialog ();}}); } निजी शून्य addTaskDialog() { LayoutInflater inflater =LayoutInflater.from (यह); सबव्यू देखें =inflater.inflate(R.layout.add_contacts, null); अंतिम संपादन टेक्स्ट नाम फ़ील्ड =subView.findViewById (R.id.enterName); अंतिम संपादन टेक्स्ट noField =subView.findViewById (R.id.enterPhoneNum); अलर्टडिअलॉग.बिल्डर बिल्डर =नया अलर्टडिअलॉग.बिल्डर (यह); Builder.setTitle ("नया संपर्क जोड़ें"); बिल्डर.सेट व्यू (सबव्यू); बिल्डर.क्रिएट (); builder.setPositiveButton("ADD CONTACT", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface डायलॉग, int जो) { अंतिम स्ट्रिंग नाम =nameField.getText ()। toString (); अंतिम स्ट्रिंग ph_no =noField.getText ().toString (); अगर (TextUtils.isEmpty(name)) { Toast.makeText(MainActivity.this, "कुछ गलत हो गया। अपने इनपुट मान जांचें", Toast.LENGTH_LONG)। =नए संपर्क (नाम, ph_no); mDatabase.addContacts (newContact); समाप्त (); startActivity (getIntent ()); }}}); builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface डायलॉग, int जो) { Toast.makeText(MainActivity.this, "Task Canceled", Toast.LENGTH_LONG).show(); } }); बिल्डर.शो (); } @Override संरक्षित शून्य onDestroy() {super.onDestroy(); अगर (mDatabase !=null) {mDatabase.close (); } }}

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

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

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

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

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


  1. Android में NestedScrollView के अंदर RecyclerView का उपयोग कैसे करें?

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

  1. एंड्रॉइड एप्लिकेशन के साथ SQLite डेटाबेस का उपयोग कैसे करें?

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

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

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