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

एंड्रॉइड पर ArrayList को SharedPreferences में कैसे सहेजते हैं?


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

  • संपादित करें () - यह साझा वरीयता मूल्यों को संपादित करने जा रहा है

  • प्रतिबद्ध () - यह xml फ़ाइल में साझा वरीयता मान करने जा रहा है

  • लागू करें () - यह संपादक से साझा वरीयता में परिवर्तन वापस करने जा रहा है।

  • निकालें (स्ट्रिंग कुंजी) - यह साझा वरीयता उपयोग कुंजी से कुंजी और वैल को हटाने जा रहा है।

  • डालें () - यह साझा वरीयता xml में कुंजी और मान डालने जा रहा है।

साझा वरीयता का एक नमूना उदाहरण सिंटैक्स जैसा कि नीचे दिखाया गया है -

<पूर्व>अंतिम साझा वरीयताएँ साझा प्राथमिकताएँ =getSharedPreferences ("USER",MODE_PRIVATE);

उपरोक्त सिंटैक्स में हमने USER.xml के रूप में एक साझा वरीयता फ़ाइल बनाई है और यह निजी मोड है जिसका अर्थ है कि कोई अन्य एप्लिकेशन इस साझा वरीयता तक नहीं पहुंच सकता है।

नीचे दिया गया यह उदाहरण दिखाता है कि एंड्रॉइड में साझा वरीयता का उपयोग कैसे करें।

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

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

 <एडिटटेक्स्ट एंड्रॉइड:आईडी ="@ + आईडी / नाम" एंड्रॉइड:लेआउट_विड्थ ="मैच_पेरेंट" एंड्रॉइड:लेआउट_हाइट ="60 डीपी " android:layout_marginTop ="8dp" android:autofillHints ="" android:hint ="NAME" ऐप:layout_constraintTop_toTopOf ="पैरेंट" टूल्स:layout_editor_absoluteX ="0dp" />  <बटन एंड्रॉइड:आईडी ="@ + आईडी / बटन "एंड्रॉइड:लेआउट_विड्थ ="108 डीपी" एंड्रॉइड:लेआउट_हाइट ="रैप_कंटेंट" एंड्रॉइड:लेआउट_मार्जिनस्टार्ट ="8 डीपी" एंड्रॉइड:लेआउट_मार्जिन लेफ्ट ="8 डीपी" एंड्रॉइड:लेआउट_मार्जिनटॉप ="120 डीपी" एंड्रॉइड:लेआउट_मार्जिनएंड ="8 डीपी" एंड्रॉइड:लेआउट एंड्रॉइड:ग्रेविटी ="सेंटर_होरिज़ोंटल" एंड्रॉइड:टेक्स्ट ="सेव" ऐप:लेआउट_कॉन्स्ट्रैन्टएंड_टूएंडऑफ़ ="पैरेंट" ऐप:लेआउट_कॉन्स्ट्रेन हॉरिज़ॉन्टल_बियास ="0.503" ऐप:लेआउट_कॉन्स्ट्रेनस्टार्ट_टोस्टार्टऑफ़ ="पैरेंट"> android:id ="@+id/read" android:layout_width ="wrap_content" android:layout_height ="wrap_content" android:layout_marginStart ="8dp" android:layout_marginLeft ="8dp" android:layout_margi nTop ="88dp" android:layout_marginEnd ="8dp" android:layout_marginRight ="8dp" android:गुरुत्वाकर्षण ="center_horizontal" android:text ="रीड" ऐप:layout_constraintEnd_toEndOf ="पैरेंट" ऐप:layout_constraintOfparent"_toStartApp:layout_constraintOfparent"_toStartApp:layout_constraintOfparent"_toStartApp:="@+id/button" /> 

उपरोक्त एक्सएमएल में इसमें नाम और पते के लिए दो संपादन टेक्स्ट होते हैं, जब उपयोगकर्ता सेव बटन पर क्लिक करता है तो यह मूल्यों को साझा प्राथमिकताओं में सरणी के रूप में स्टोर करने जा रहा है और जब उपयोगकर्ता रीड बटन पर क्लिक करता है तो यह साझा में उपलब्ध सरणी से मानों को पढ़ने जा रहा है वरीयताएँ।

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

<पूर्व>पैकेज com.example.andy.myapplication;import android.annotation.SuppressLint;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.google. gson.reflect.TypeToken आयात करें। क्रिएट (बंडल सेव्ड इंस्टेंसस्टेट) पर संरक्षित शून्य को ओवरराइड करें {super.onCreate(savedInstanceState); अंतिम ArrayList<स्ट्रिंग> arrPackage; setContentView(R.layout.activity_main); अंतिम साझा किए गए संदर्भ साझा किए गए संदर्भ =getSharedPreferences ("उपयोगकर्ता", MODE_PRIVATE); अंतिम संपादन टेक्स्ट नाम =findViewById (R.id.name); अंतिम संपादन टेक्स्ट पता =findViewById (R.id.address); अंतिम टेक्स्ट व्यू परिणाम =findViewById (R.id.result); बटन सहेजें =findViewById (R.id.button); बटन पढ़ें =findViewById (R.id.read); arrPackage =नया ArrayList<>(); read.setOnClickListener (नया व्यू। ऑनक्लिक लिस्टनर () { @SuppressLint ("लॉन्गलॉगटैग") @ ओवरराइड पब्लिक वॉयड ऑनक्लिक (व्यू वी) {जीसन जीसन =न्यू जीसन (); स्ट्रिंग जोंस =शेयर्डप्रेफरेंस। गेटस्ट्रिंग ("सेट", ""); अगर (json.isEmpty ()) { Toast.makeText (MainActivity.this, "कुछ त्रुटि है", Toast.LENGTH_LONG)। शो (); } और {टाइप टाइप =नया टाइप टोकन <सूची <स्ट्रिंग>> () { }.getType(); सूची<स्ट्रिंग> arrPackageData =gson.fromJson(json, type); for(String data:arrPackageData) { result.setText(data); } }}}); save.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) { अगर (name.getText ()। toString ()। isEmpty () &&पता। getText ()। toString ()। isEmpty () ) { Toast.makeText(MainActivity.this,"Plz Enter all data", Toast.LENGTH_LONG).show(); }else{ String nameData =name.getText().toString().trim(); String addressData =address.getText().toString().trim(); arrPackage.add(nameData); arrPackage.add(addressData); Gson gson =new Gson(); String json =gson.toJson(arrPackage); SharedPreferences.Editor Editor =SharePreferences.edit (); Editor.putString ("सेट", जेसन); Editor.commit (); }}});}

उपरोक्त कोड में, हमने सरणी सूची को GSON में बदल दिया है और GSON डेटा को स्ट्रिंग के रूप में हथिया लिया है।

चरण 4 - जीएसओएन तक पहुंचने के लिए हमें बिल्ड.ग्रेडल में जीएसओएन लाइब्रेरी जोड़ने की जरूरत है जैसा कि नीचे दिखाया गया है -

<पूर्व>प्लगइन लागू करें:'com.android.application'android {compileSdkVersion 28 defaultConfig { applicationId "com.example.andy.myapplication" minSdkVersion 15 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.google.code.gson:gson:2.8.5' कार्यान्वयन 'com.android.support:appcompat-v7:28.0.0' कार्यान्वयन 'com.android.support.constraint:constraint-layout:1.1.3 ' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

चरण 5 - मेनिफेस्ट को बदलने की कोई आवश्यकता नहीं है। आइए आपके एप्लिकेशन को चलाने का प्रयास करें।

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

एंड्रॉइड पर ArrayList को SharedPreferences में कैसे सहेजते हैं?

उपरोक्त उदाहरण में हमने नाम और पता जोड़ा है और सेव बटन पर क्लिक किया है।

एंड्रॉइड पर ArrayList को SharedPreferences में कैसे सहेजते हैं?

उपरोक्त उदाहरण में, हमने रीड बटन पर क्लिक किया है। यह टेक्स्ट को टेक्स्ट व्यू में जोड़ देगा


  1. मैं अपने Android ऐप के लिए SharedPreferences डेटा कैसे हटाऊं?

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

  1. एंड्रॉइड पर जीमेल अटैचमेंट कैसे सेव करें

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

  1. एंड्रॉइड पर ट्विटर से जीआईएफ कैसे बचाएं

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