Android - साझा प्राथमिकताएँ

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

साझा प्राथमिकताओं का उपयोग करने के लिए, आपको एक विधि getSaredPreferences () को कॉल करना होगा जो कि साझा करने के लिए शेयर्डप्रिफरेंस उदाहरण लौटाता है जिसमें वरीयताएँ शामिल हैं।

SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

पहला पैरामीटर कुंजी है और दूसरा पैरामीटर MODE है। निजी के अलावा अन्य मोड उपलब्ध हैं जो नीचे सूचीबद्ध हैं -

अनु क्रमांक मोड और विवरण
1

MODE_APPEND

यह पहले से मौजूद प्राथमिकताओं के साथ नई प्राथमिकताओं को जोड़ देगा

2

MODE_ENABLE_WRITE_AHEAD_LOGGING

डेटाबेस खुला ध्वज। जब यह सेट हो जाता है, तो यह डिफ़ॉल्ट रूप से आगे लॉगिंग लिखने में सक्षम होगा

3

MODE_MULTI_PROCESS

यह विधि वरीयताओं के संशोधन के लिए जांच करेगी भले ही साझाकरण उदाहरण पहले से लोड किया गया हो

4

MODE_PRIVATE

इस मोड को सेट करके, फ़ाइल को केवल कॉलिंग एप्लिकेशन का उपयोग करके एक्सेस किया जा सकता है

5

MODE_WORLD_READABLE

यह मोड अन्य एप्लिकेशन को वरीयताओं को पढ़ने की अनुमति देता है

6

MODE_WORLD_WRITEABLE

यह मोड अन्य एप्लिकेशन को वरीयताओं को लिखने की अनुमति देता है

शेयर्डप्रिफरेंस.ईडिटर वर्ग का उपयोग करके आप साझाकरण में कुछ बचा सकते हैं। आप SharedPreference आवृत्ति का संपादन विधि कहेंगे और इसे एक संपादक ऑब्जेक्ट में प्राप्त करेंगे। इसका वाक्य विन्यास है -

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

पुटस्ट्रिंग विधि के अलावा, संपादक वर्ग में उपलब्ध विधियां हैं जो साझा प्राथमिकताओं के अंदर डेटा के हेरफेर की अनुमति देती हैं। वे इस प्रकार सूचीबद्ध हैं -

अनु क्रमांक मोड और विवरण
1

apply()

यह एक अमूर्त विधि है। यह संपादक से आपके द्वारा साझा किए जा रहे साझा ऑब्जेक्ट पर आपके परिवर्तनों को वापस करेगा

2

clear()

यह संपादक से सभी मूल्यों को हटा देगा

3

remove(String key)

यह उस मान को हटा देगा जिसकी कुंजी को पैरामीटर के रूप में पारित किया गया है

4

putLong(String key, long value)

यह एक वरीयता संपादक में एक लंबे मूल्य को बचाएगा

5

putInt(String key, int value)

यह वरीयता संपादक में पूर्णांक मान को बचाएगा

6

putFloat(String key, float value)

यह एक वरीयता संपादक में एक फ्लोट मूल्य को बचाएगा

उदाहरण

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

इस उदाहरण के साथ प्रयोग करने के लिए, आपको नीचे दिए गए चरणों के अनुसार एप्लिकेशन विकसित करने के बाद इसे वास्तविक डिवाइस पर चलाना होगा -

कदम विवरण
1 आप एक पैकेज com.example.sairamkrishna.myapplication के तहत Android एप्लिकेशन बनाने के लिए Android स्टूडियो का उपयोग करेंगे।
2 कताई प्रगति संवाद प्रदर्शित करने के लिए प्रगति कोड जोड़ने के लिए src / MainActivity.java फ़ाइल को संशोधित करें।
3 संबंधित XML कोड जोड़ने के लिए Res / लेआउट / activity_main.xml फ़ाइल को संशोधित करें।
4 एप्लिकेशन चलाएं और एक रनिंग एंड्रॉइड डिवाइस चुनें और उस पर एप्लिकेशन इंस्टॉल करें और परिणामों को सत्यापित करें।

निम्नलिखित संशोधित की सामग्री है MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
   EditText ed1,ed2,ed3;
   Button b1;
	
   public static final String MyPREFERENCES = "MyPrefs" ;
   public static final String Name = "nameKey";
   public static final String Phone = "phoneKey";
   public static final String Email = "emailKey";
	
   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      ed1=(EditText)findViewById(R.id.editText);
      ed2=(EditText)findViewById(R.id.editText2);
      ed3=(EditText)findViewById(R.id.editText3);

      b1=(Button)findViewById(R.id.button);
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            String n  = ed1.getText().toString();
            String ph  = ed2.getText().toString();
            String e  = ed3.getText().toString();

            SharedPreferences.Editor editor = sharedpreferences.edit();

            editor.putString(Name, n);
            editor.putString(Phone, ph);
            editor.putString(Email, e);
            editor.commit();
            Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
         }
      });
   }

}

निम्नलिखित संशोधित मुख्य गतिविधि फ़ाइल की सामग्री हैres/layout/activiy_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Shared Preference "
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="35dp" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText"
      android:layout_below="@+id/textView2"
      android:layout_marginTop="67dp"
      android:hint="Name"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText2"
      android:layout_below="@+id/editText"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Pass" />
      
   <EditText
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/editText3"
      android:layout_below="@+id/editText2"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:hint="Email" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Save"
      android:id="@+id/button"
      android:layout_below="@+id/editText3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp" />
      
</RelativeLayout>

निम्नलिखित फ़ाइल की संशोधित सामग्री की सामग्री है res/values/strings.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

निम्नलिखित सामग्री डिफ़ॉल्ट फ़ाइल है AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

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

टूलबार से रन आइकन पर क्लिक करें । अपना एप्लिकेशन शुरू करने से पहले, एंड्रॉइड स्टूडियो एक विकल्प का चयन करने के लिए विंडो के बाद प्रदर्शित करेगा जहां आप अपना एंड्रॉइड एप्लिकेशन चलाना चाहते हैं।

एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो निम्न स्क्रीन प्रदर्शित करेगा -

अब बस क्षेत्र में कुछ पाठ में डाल दिया। जैसे मैंने कुछ रैंडम नाम और अन्य जानकारी डाली और सेव बटन पर क्लिक किया।

अब जब आप सहेजें बटन दबाते हैं, तो पाठ साझा प्राथमिकताओं में सहेजा जाएगा। अब बैक बटन दबाएं और एप्लिकेशन से बाहर निकलें। अब इसे फिर से खोलें और आप अपने आवेदन में वापस लिखे गए सभी पाठ देखेंगे।