অ্যান্ড্রয়েডে SharedPreferences কীভাবে মানগুলি সংরক্ষণ, আনয়ন এবং সম্পাদনা করতে ব্যবহার করতে হয় [বন্ধ]


599

আমি একটি সময়ের মান সঞ্চয় করতে চাই এবং এটি পুনরুদ্ধার এবং সম্পাদনা করা দরকার। আমি এটি করতে কীভাবে ব্যবহার SharedPreferencesকরতে পারি?


আমি জেনেরিক শেয়ারডপ্রিফেরেন্সেস রেপার বাস্তবায়ন করেছি, একবার দেখুন: android-
ज्ञान-how-to.blogspot.co.il/2014/03/…

এই লাইব্রেরিটি ব্যবহার করে একটি সরলীকৃত পন্থা হবে: github.com/viralypatel/Android-SredredPreferences- সহায়তা ... আমার উত্তরটিতে প্রযুক্তিগত বিশদ এখানে বাড়ানো হয়েছে ...
AndroidMechanic - ভাইরাল প্যাটেল

উত্তর:


838

ভাগ করা পছন্দগুলি পেতে, আপনার ক্রিয়াকলাপে নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

পছন্দগুলি পড়তে:

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

পছন্দগুলি সম্পাদনা এবং সংরক্ষণ করতে

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

অ্যান্ড্রয়েড এসডকের নমুনা ডিরেক্টরিতে ভাগ করা পছন্দগুলি পুনরুদ্ধার এবং সঞ্চয় করার একটি উদাহরণ রয়েছে। এটিতে অবস্থিত:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

সম্পাদনা করুন ==>

আমি লক্ষ করেছি, এখানে commit()এবং apply()এখানেও পার্থক্য লেখার জন্য গুরুত্বপূর্ণ ।

commit()trueঅন্যথায় মান সাফল্যের সাথে সংরক্ষণ করা হলে প্রত্যাবর্তন করুন false। এটা তোলে SharedPreferences মান রক্ষা সিঙ্ক্রোনাস

apply()২.৩-এ যোগ করা হয়েছিল এবং সাফল্য বা ব্যর্থতার কারণে কোনও মান ফেরত দেয় না। এটি তাত্ক্ষণিকভাবে ভাগ করা পছন্দগুলিতে মানগুলি সংরক্ষণ করে তবে একটি অ্যাসিনক্রোনাস কমিট শুরু করে । আরও বিশদ এখানে


এর পরের বার যখন ব্যবহারকারী আমার অ্যাপটি চালাবেন, সঞ্চিত মানটি ইতিমধ্যে রয়েছে এবং আমি এটি আনতে পারি ... তাই না?
মুহাম্মদ মকসুদুর রেহমান

4
(উপরের পড়া যে কারও কাছে) হ্যাঁ এটি নির্বিচারে। এই উদাহরণটি কেবল "com.example.app.datetime" কীটির সাথে অগ্রাধিকার হিসাবে বর্তমান তারিখটি সংরক্ষণ করে।
এমএসপিড

1
this.getSharedPreferencesআমাকে নিম্নলিখিত ত্রুটিটি দেয়:The method getSharedPreferences(String, int) is undefined for the type MyActivity
Si8

15
SharedPreferences.Editor.apply () নভেম্বর 2010, 2010 এ জিনজারব্রেডে প্রবর্তিত হয়েছিল (এই উত্তরটি পোস্ট করার পরে)। প্রয়োগ () আরও কার্যকর তাই যেহেতু সম্ভব কমিট () এর পরিবর্তে এটি ব্যবহার করুন।
21

4
Editor.apply () এর জন্য 9 স্তরের বা ততোধিক এপিআই স্তরের প্রয়োজন। এর নীচে Editor.commit () ব্যবহার করুন
লেনার্ট রোল্যান্ড

283

ভাগ করা পছন্দগুলিতে মান সংরক্ষণ করতে:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.apply();

ভাগ করা পছন্দগুলি থেকে মানগুলি পুনরুদ্ধার করতে:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
    name = name + "  Sethi";  /* Edit the value here*/
}

17
আমি এই উত্তরটি সেরা পছন্দ করি কারণ এটি getDefaultSharedPreferences ব্যবহার করে। বেশিরভাগ ব্যবহারকারীর জন্য এটি জিনিসগুলিকে সহজ করবে কারণ একই অ্যাপ্লিকেশনগুলি পুরো অ্যাপ্লিকেশনটিতে অ্যাক্সেস করা যায় এবং আপনার পছন্দসই ফাইলটির নামকরণের বিষয়ে আপনাকে চিন্তা করতে হবে না। এখানে আরও: স্ট্যাকওভারফ্লো.com
ডিক লুকাস

আমি সম্মতি দিয়েছি ... স্বীকৃত উত্তরের পদ্ধতিটি ব্যবহার করে কেন আমি আমার ভাগ করা প্রিফগুলিকে অন্য ক্রিয়াকলাপ থেকে অ্যাক্সেস করতে পারছি না তা জানার চেষ্টা করে আমার চুলগুলি টেনে নেওয়ার পরে আমি এটি পেয়েছি। অনেক ধন্যবাদ!
22:38

এটি সংরক্ষণ এবং লোড করার জন্য আমি কীভাবে এটি ব্যবহার করতে পারি Map<DateTime, Integer>?
দিমিত্রি

ব্যবহার করুন github.com/AliEsaAssadi/Android-Power-Preference বাস্তবায়ন প্রক্রিয়া সহজ করার জন্য
আলী আসাদি

164

থেকে ডেটা সম্পাদনা করতেsharedpreference

 SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
 editor.putString("text", mSaved.getText().toString());
 editor.putInt("selection-start", mSaved.getSelectionStart());
 editor.putInt("selection-end", mSaved.getSelectionEnd());
 editor.apply();

থেকে তথ্য পুনরুদ্ধার করতেsharedpreference

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) 
{
  //mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
  int selectionStart = prefs.getInt("selection-start", -1);
  int selectionEnd = prefs.getInt("selection-end", -1);
  /*if (selectionStart != -1 && selectionEnd != -1)
  {
     mSaved.setSelection(selectionStart, selectionEnd);
  }*/
}

সম্পাদন করা

আমি এপিআই ডেমো নমুনা থেকে এই স্নিপেট নিয়েছি। এটি একটি EditTextবাক্স ছিল। এই সালে contextএটা required.I টা একই মন্তব্য নয়।


12
+1, তবে getPreferences (MODE_PRIVATE) ব্যবহার করুন; getPreferences (0) এর পরিবর্তে; পাঠযোগ্যতার জন্য।
কী

এখানে এম সেভড কী? আমার 2 টি স্ট্রিংয়ের মান সংরক্ষণ করতে হবে।
মুহাম্মদ মকসুদুর রেহমান

এমসেভড কী তা আমি জানতে চাই। এনভিএম আমি মনে করি এটির সম্পাদনা
কার্লস্ট্যাকওভারফ্লো

1
গেট ইন্টে কি -১ মানে ??
amr ওসামা

1
কী (সিলেকশন-স্টার্ট) অংশীদারি পছন্দগুলিতে উপস্থিত না থাকলে ডিফল্ট মানটি ফেরত যেতে চলেছে t এটি কিছু হতে পারে এবং এটি কেবল আপনার রেফারেন্সের জন্য।
ডেরাগান

39

লিখতে :

SharedPreferences preferences = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Authentication_Id",userid.getText().toString());
editor.putString("Authentication_Password",password.getText().toString());
editor.putString("Authentication_Status","true");
editor.apply();

পড়তে :

SharedPreferences prfs = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_PRIVATE);
String Astatus = prfs.getString("Authentication_Status", "");

MODE_WORLD_WRITEABLE হ্রাস করা হয়েছে।
ক্রিস্টোফার স্মিথ

28

সহজ রাস্তা:

সংরক্ষণ:

getPreferences(MODE_PRIVATE).edit().putString("Name of variable",value).commit();

পুনরুদ্ধার করা:

your_variable = getPreferences(MODE_PRIVATE).getString("Name of variable",default value);

আমি এটি কার্যক্রমের মধ্যে চেষ্টা করেছি এবং এটি কার্যকর হয়নি। প্যাকেজ কাঠামোটি কি ভারে অন্তর্ভুক্ত করা দরকার?
গা

ক্রিয়াকলাপগুলির মধ্যে এই কাঠামোটি ব্যবহারের জন্য getPreferences (MODE_PRIVATE) এর সাথে DefenderManager.getDefaultSharedPreferences (আপনার ক্রিয়াকলাপ) প্রতিস্থাপন করুন
লুসিয়ান নোভাক

কমিট () পরিবর্তে প্রয়োগ () ব্যবহার করুন
বৈভব

18

পছন্দগুলিতে মান নির্ধারণ:

// MY_PREFS_NAME - a static String variable like: 
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
 editor.putString("name", "Elena");
 editor.putInt("idName", 12);
 editor.commit();

পছন্দ থেকে ডেটা পুনরুদ্ধার:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
  String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
  int idName = prefs.getInt("idName", 0); //0 is the default value.
}

অধিক তথ্য:

ভাগ করা পছন্দগুলি ব্যবহার করা

ভাগ করা পছন্দসমূহ


মাইপ্রেফস ফাইল কি? পছন্দের ক্রিয়াকলাপের এক্সএমএল?
মার্টিন এরলিক

17

সিঙ্গলটন শেয়ারড প্রেফারেন্স ক্লাস। এটি ভবিষ্যতে অন্যদের জন্য সহায়ক হতে পারে।

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;

public class SharedPref
{
    private static SharedPreferences mSharedPref;
    public static final String NAME = "NAME";
    public static final String AGE = "AGE";
    public static final String IS_SELECT = "IS_SELECT";

    private SharedPref()
    {

    }

    public static void init(Context context)
    {
        if(mSharedPref == null)
            mSharedPref = context.getSharedPreferences(context.getPackageName(), Activity.MODE_PRIVATE);
    }

    public static String read(String key, String defValue) {
        return mSharedPref.getString(key, defValue);
    }

    public static void write(String key, String value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putString(key, value);
        prefsEditor.commit();
    }

    public static boolean read(String key, boolean defValue) {
        return mSharedPref.getBoolean(key, defValue);
    }

    public static void write(String key, boolean value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putBoolean(key, value);
        prefsEditor.commit();
    }

    public static Integer read(String key, int defValue) {
        return mSharedPref.getInt(key, defValue);
    }

    public static void write(String key, Integer value) {
        SharedPreferences.Editor prefsEditor = mSharedPref.edit();
        prefsEditor.putInt(key, value).commit();
    }
}

কেবল একবার কল SharedPref.init()করুনMainActivity

SharedPref.init(getApplicationContext());

ডেটা লিখতে

SharedPref.write(SharedPref.NAME, "XXXX");//save string in shared preference.
SharedPref.write(SharedPref.AGE, 25);//save int in shared preference.
SharedPref.write(SharedPref.IS_SELECT, true);//save boolean in shared preference.

ডেটা পড়তে

String name = SharedPref.read(SharedPref.NAME, null);//read string in shared preference.
int age = SharedPref.read(SharedPref.AGE, 0);//read int in shared preference.
boolean isSelect = SharedPref.read(SharedPref.IS_SELECT, false);//read boolean in shared preference.

15

তথ্য সঞ্চয় করতে

SharedPreferences preferences = getSharedPreferences(PREFS_NAME,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("username", username.getText().toString());
editor.putString("password", password.getText().toString());
editor.putString("logged", "logged");
editor.commit();

আপনার পছন্দগুলি পুনরায় সেট করতে

SharedPreferences.Editor editor = preferences.edit();
editor.clear();
editor.commit();

12

আপনি যদি আপনার টিমের অন্যান্য বিকাশকারীদের সাথে একটি বৃহত অ্যাপ্লিকেশন করছেন এবং ছড়িয়ে ছিটিয়ে থাকা কোড বা ভিন্ন ভিন্ন SharedPreferences উদাহরণগুলি ছাড়াই সবকিছু সুসংহত করার ইচ্ছে করে থাকেন তবে আপনি এরকম কিছু করতে পারেন:

//SharedPreferences manager class
public class SharedPrefs {

    //SharedPreferences file name
    private static String SHARED_PREFS_FILE_NAME = "my_app_shared_prefs";

    //here you can centralize all your shared prefs keys
    public static String KEY_MY_SHARED_BOOLEAN = "my_shared_boolean";
    public static String KEY_MY_SHARED_FOO = "my_shared_foo";

    //get the SharedPreferences object instance
    //create SharedPreferences file if not present


    private static SharedPreferences getPrefs(Context context) {
        return context.getSharedPreferences(SHARED_PREFS_FILE_NAME, Context.MODE_PRIVATE);
    }

    //Save Booleans
    public static void savePref(Context context, String key, boolean value) {
        getPrefs(context).edit().putBoolean(key, value).commit();       
    }

    //Get Booleans
    public static boolean getBoolean(Context context, String key) {
        return getPrefs(context).getBoolean(key, false);
    }

    //Get Booleans if not found return a predefined default value
    public static boolean getBoolean(Context context, String key, boolean defaultValue) {
        return getPrefs(context).getBoolean(key, defaultValue);
    }

    //Strings
    public static void save(Context context, String key, String value) {
        getPrefs(context).edit().putString(key, value).commit();
    }

    public static String getString(Context context, String key) {
        return getPrefs(context).getString(key, "");
    }

    public static String getString(Context context, String key, String defaultValue) {
        return getPrefs(context).getString(key, defaultValue);
    }

    //Integers
    public static void save(Context context, String key, int value) {
        getPrefs(context).edit().putInt(key, value).commit();
    }

    public static int getInt(Context context, String key) {
        return getPrefs(context).getInt(key, 0);
    }

    public static int getInt(Context context, String key, int defaultValue) {
        return getPrefs(context).getInt(key, defaultValue);
    }

    //Floats
    public static void save(Context context, String key, float value) {
        getPrefs(context).edit().putFloat(key, value).commit();
    }

    public static float getFloat(Context context, String key) {
        return getPrefs(context).getFloat(key, 0);
    }

    public static float getFloat(Context context, String key, float defaultValue) {
        return getPrefs(context).getFloat(key, defaultValue);
    }

    //Longs
    public static void save(Context context, String key, long value) {
        getPrefs(context).edit().putLong(key, value).commit();
    }

    public static long getLong(Context context, String key) {
        return getPrefs(context).getLong(key, 0);
    }

    public static long getLong(Context context, String key, long defaultValue) {
        return getPrefs(context).getLong(key, defaultValue);
    }

    //StringSets
    public static void save(Context context, String key, Set<String> value) {
        getPrefs(context).edit().putStringSet(key, value).commit();
    }

    public static Set<String> getStringSet(Context context, String key) {
        return getPrefs(context).getStringSet(key, null);
    }

    public static Set<String> getStringSet(Context context, String key, Set<String> defaultValue) {
        return getPrefs(context).getStringSet(key, defaultValue);
    }
}

আপনার ক্রিয়াকলাপে আপনি এইভাবে ভাগ করা পছন্দগুলি সংরক্ষণ করতে পারেন

//saving a boolean into prefs
SharedPrefs.savePref(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN, booleanVar);

এবং আপনি এইভাবে আপনার অংশীদারি পছন্দগুলি পুনরুদ্ধার করতে পারেন

//getting a boolean from prefs
booleanVar = SharedPrefs.getBoolean(this, SharedPrefs.KEY_MY_SHARED_BOOLEAN);

12

যে কোনও অ্যাপ্লিকেশনটিতে, ডিফল্ট পছন্দগুলি থাকে যা PreferenceManagerউদাহরণ এবং এর সাথে সম্পর্কিত পদ্ধতির মাধ্যমে অ্যাক্সেস করতে পারে getDefaultSharedPreferences(Context)

সঙ্গে SharedPreferenceউদাহরণস্বরূপ এক সঙ্গে কোনো পছন্দের int- এ মান উদ্ধার করতে পারেন GetInt (স্ট্রিং কী, defVal int- এ) । এই ক্ষেত্রে আমরা যে পছন্দটি পছন্দ করি তা হ'ল পাল্টা।

আমাদের ক্ষেত্রে, আমরা SharedPreferenceসম্পাদনা () সম্পাদনা করে আমাদের ক্ষেত্রে উদাহরণটি পরিবর্তন করতে পারি এবং putInt(String key, int newVal)আমরা আমাদের অ্যাপ্লিকেশনটির জন্য গণনা বাড়িয়েছি যা অ্যাপ্লিকেশনটির বাইরে প্রেসিডেন্ট থাকে এবং সেই অনুযায়ী প্রদর্শিত হয়।

এটি আরও ডেমো করার জন্য, পুনরায় চালু করুন এবং আপনি আবার আবেদন করুন, আপনি লক্ষ্য করবেন যে আপনি যখন অ্যাপ্লিকেশনটি পুনরায় চালু করবেন তখন গণনা বাড়বে।

PreferencesDemo.java

কোড:

package org.example.preferences;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class PreferencesDemo extends Activity {
   /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // Get the app's shared preferences
        SharedPreferences app_preferences = 
        PreferenceManager.getDefaultSharedPreferences(this);

        // Get the value for the run counter
        int counter = app_preferences.getInt("counter", 0);

        // Update the TextView
        TextView text = (TextView) findViewById(R.id.text);
        text.setText("This app has been started " + counter + " times.");

        // Increment the counter
        SharedPreferences.Editor editor = app_preferences.edit();
        editor.putInt("counter", ++counter);
        editor.commit(); // Very important
    }
}

main.xml

কোড:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/text"  
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="@string/hello" />
</LinearLayout>

8

এর মাধ্যমে লগইন মান কীভাবে সংরক্ষণ করা যায় তার সহজ সমাধান SharedPreferences

আপনি MainActivityক্লাস বা অন্যান্য শ্রেণি প্রসারিত করতে পারেন যেখানে আপনি "আপনার কাছে রাখতে চান এমন কোনও কিছুর মান" সঞ্চয় করবেন। এটি লেখক এবং পাঠক শ্রেণিতে রাখুন:

public static final String GAME_PREFERENCES_LOGIN = "Login";

এখানে যথাক্রমে InputClassইনপুট এবং OutputClassআউটপুট ক্লাস।

// This is a storage, put this in a class which you can extend or in both classes:
//(input and output)
public static final String GAME_PREFERENCES_LOGIN = "Login";

// String from the text input (can be from anywhere)
String login = inputLogin.getText().toString();

// then to add a value in InputCalss "SAVE",
SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
Editor editor = example.edit();
editor.putString("value", login);
editor.commit();

এখন আপনি এটি অন্য শ্রেণীর মতো অন্য কোথাও ব্যবহার করতে পারেন। নিচে দেওয়া হল OutputClass

SharedPreferences example = getSharedPreferences(GAME_PREFERENCES_LOGIN, 0);
String userString = example.getString("value", "defValue");

// the following will print it out in console
Logger.getLogger("Name of a OutputClass".class.getName()).log(Level.INFO, userString);

8

SharedPreferences এ সঞ্চয় করুন

SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString("name", name);
editor.commit();

ভাগ করা পছন্দসমূহে আনুন

SharedPreferences preferences=getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
String name=preferences.getString("name",null);

দ্রষ্টব্য: "টেম্প" অংশীদারি নাম এবং "নাম" হ'ল ইনপুট মান। মানটি যদি প্রস্থান না করে তবে নালটি ফিরে আসুন


। খুব ভাল এবং .কিন্তু ব্যবহার করা সহজ এখানে Context.MODE_PRIVATE না getApplicationContext () MODE_PRIVATE হয়
মারিয়া Gheorghe

7

সম্পাদন করা

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("yourValue", value);
editor.commit();

পড়ুন

SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
value= pref.getString("yourValue", "");

6

এক্সএমএল ফাইলে জিনিসগুলি সংরক্ষণ করা SharedPreferences এর প্রাথমিক ধারণা ।

  1. আপনার এক্সএমএল ফাইলের পাথ ঘোষণা করুন ((আপনার কাছে এই ফাইলটি না থাকলে অ্যান্ড্রয়েড এটিকে তৈরি করবে you আপনার কাছে এই ফাইলটি থাকলে অ্যান্ড্রয়েড এটি অ্যাক্সেস করবে।)

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
  2. ভাগ করা পছন্দগুলিতে মান লিখুন

    prefs.edit().putLong("preference_file_key", 1010101).apply();

    preference_file_keyভাগ পক্ষপাত ফাইল নাম। এবং আপনার 1010101সঞ্চয় করার জন্য প্রয়োজনীয় মান।

    apply()শেষ পর্যন্ত পরিবর্তনগুলি সংরক্ষণ করা। আপনি যদি ত্রুটি পান তবে apply()এটিকে পরিবর্তন করুন commit()। সুতরাং এই বিকল্প বাক্য হয়

    prefs.edit().putLong("preference_file_key", 1010101).commit();
  3. ভাগ করা পছন্দগুলি থেকে পড়ুন

    SharedPreferences sp = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);
    long lsp = sp.getLong("preference_file_key", -1);

    lspকোন মান আছে -1যদি হবে preference_file_key। যদি 'preferences_file_key' এর একটি মান থাকে তবে এটি এর মান প্রদান করবে।

লেখার পুরো কোডটি হ'ল

    SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    prefs.edit().putLong("preference_file_key", 1010101).apply();    // Write the value to key.

পড়ার কোডটি হ'ল

    SharedPreferences sf = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);    // Declare xml file
    long lsp = sp.getLong("preference_file_key", -1);    // Read the key and store in lsp

Editor.apply () এর জন্য 9 স্তরের বা ততোধিক এপিআই স্তরের প্রয়োজন। এর নীচে Editor.commit ()
লেনার্ট রোল্যান্ড ব্যবহার করুন

6

আপনি এই পদ্ধতিটি ব্যবহার করে মান সংরক্ষণ করতে পারেন:

public void savePreferencesForReasonCode(Context context,
    String key, String value) {
    SharedPreferences sharedPreferences = PreferenceManager
    .getDefaultSharedPreferences(context);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(key, value);
    editor.commit();
    }

এবং এই পদ্ধতিটি ব্যবহার করে আপনি ভাগ করা পছন্দগুলি থেকে মান পেতে পারেন:

public String getPreferences(Context context, String prefKey) {
  SharedPreferences sharedPreferences = PreferenceManager
 .getDefaultSharedPreferences(context);
 return sharedPreferences.getString(prefKey, "");
}

এখানে prefKeyআপনি নির্দিষ্ট মানটি সংরক্ষণ করতে ব্যবহৃত কীটি রয়েছে। ধন্যবাদ।


বুলিয়ান সম্পর্কে কি?
ইউশা আলেয়াউব 26'16

এই লাইনটি ব্যবহার করে সংরক্ষণ করুন: Editor.putString (কী, মান); এই লাইনটি ব্যবহার করুন: আপনার লকড = prefs.getBoolean ("লকড", মিথ্যা);
মোঃ সাজেদুল করিম

6
editor.putString("text", mSaved.getText().toString());

এখানে, mSavedযে কোনও TextViewবা EditTextযেখান থেকে আমরা একটি স্ট্রিং বের করতে পারি can আপনি কেবল একটি স্ট্রিং নির্দিষ্ট করতে পারেন। এখানে টেক্সট কী ব্যবহার করুন যা মান থেকে প্রাপ্ত রাখা হবে mSaved( TextViewবা EditText)।

SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);

এছাড়াও প্যাকেজের নাম যেমন "com.example.app" ব্যবহার করে পছন্দসই ফাইলটি সংরক্ষণ করার দরকার নেই। আপনি নিজের পছন্দসই নামটি উল্লেখ করতে পারেন। আশাকরি এটা সাহায্য করবে !


5

SharedPreferences কীভাবে ব্যবহার করবেন সে সম্পর্কে লোকেরা বিভিন্নভাবে প্রস্তাব দেয় । আমি এখানে একটি ডেমো প্রকল্প তৈরি করেছি । নমুনার মূল বিষয় হ'ল অ্যাপ্লিকেশন কনটেক্সট এবং একক অংশীদারি পছন্দ বস্তু ব্যবহার করা । এটি নীচের বৈশিষ্ট্যগুলির সাথে ভাগ করে নেওয়া পছন্দগুলি কীভাবে ব্যবহার করবেন তা দেখায়: -

  • ভাগ করা পছন্দগুলি অ্যাক্সেস / আপডেট করতে সিনগেলটন ক্লাস ব্যবহার করা
  • SharedPreferences পড়তে / লেখার জন্য সর্বদা প্রসঙ্গ পাস করার দরকার নেই
  • এটি কমিটের পরিবর্তে প্রয়োগ () ব্যবহার করে ()
  • প্রয়োগ () হ'ল অ্যাসিঙ্ক্রোনাস সেভ, কোনও কিছু ফেরত দেয় না, এটি প্রথমে মেমরির মান আপডেট করে এবং ডিস্কে পরে পরিবর্তনগুলি অ্যাসিঙ্ক্রোনাসলি লিখিত হয়।
  • কমিট () সিঙ্ক্রোনাস সেভ, ফলাফলের ভিত্তিতে এটি সত্য / মিথ্যা প্রত্যাবর্তন করে। পরিবর্তনগুলি ডিস্কের সিঙ্ক্রোনাসলি লিখিত হয়
  • Android 2.3+ সংস্করণে কাজ করে

নীচের হিসাবে ব্যবহারের উদাহরণ: -

MyAppPreference.getInstance().setSampleStringKey("some_value");
String value= MyAppPreference.getInstance().getSampleStringKey();

এখানে উত্স কোড পান এবং ডেভেলপার.অ্যান্ড্রয়েড.কম এ বিশদ এপিআই পাওয়া যাবে


আরে, আমার ভাগ করে নেওয়া পছন্দগুলি নিয়ে একটি প্রশ্ন আছে। আপনি কি উত্তর দিতে আপত্তি? stackoverflow.com/questions/35713822/…
রুচির বড়োনিয়া

5

সেরা অনুশীলন

তৈরি করুন ইন্টারফেস নামে PreferenceManager :

// Interface to save values in shared preferences and also for retrieve values from shared preferences
public interface PreferenceManager {

    SharedPreferences getPreferences();
    Editor editPreferences();

    void setString(String key, String value);
    String getString(String key);

    void setBoolean(String key, boolean value);
    boolean getBoolean(String key);

    void setInteger(String key, int value);
    int getInteger(String key);

    void setFloat(String key, float value);
    float getFloat(String key);

}

ক্রিয়াকলাপ / টুকরা দিয়ে কীভাবে ব্যবহার করবেন :

public class HomeActivity extends AppCompatActivity implements PreferenceManager{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout_activity_home);
    }

    @Override
    public SharedPreferences getPreferences(){
        return getSharedPreferences("SP_TITLE", Context.MODE_PRIVATE);
    }

    @Override
    public SharedPreferences.Editor editPreferences(){
        return getPreferences().edit();
    }

    @Override
    public void setString(String key, String value) {
        editPreferences().putString(key, value).commit();
    }

    @Override
    public String getString(String key) {
        return getPreferences().getString(key, "");
    }

    @Override
    public void setBoolean(String key, boolean value) {
        editPreferences().putBoolean(key, value).commit();
    }

    @Override
    public boolean getBoolean(String key) {
        return  getPreferences().getBoolean(key, false);
    }

    @Override
    public void setInteger(String key, int value) {
        editPreferences().putInt(key, value).commit();
    }

    @Override
    public int getInteger(String key) {
        return getPreferences().getInt(key, 0);
    }

    @Override
    public void setFloat(String key, float value) {
        editPreferences().putFloat(key, value).commit();
    }

    @Override
    public float getFloat(String key) {
        return getPreferences().getFloat(key, 0);
    }
}

দ্রষ্টব্য: আপনার SharedPreferences এর কীটি এসপিএলএল-এর সাথে প্রতিস্থাপন করুন ।

উদাহরণ:

সঞ্চয় করুন স্ট্রিং মধ্যে shareperence :

setString("my_key", "my_value");

শেয়ারপ্রেেন্স থেকে স্ট্রিং পান :

String strValue = getString("my_key");

আশা করি এটা তোমাকে সাহায্য করবে।


আমি কি সমস্ত সঞ্চয় করার জন্য একই ভাগ করা পছন্দসই বস্তুটি ব্যবহার করি, বা আমি প্রতিটি পৃথক ডেটার জন্য নতুন ভাগ করা প্রিফ অবজেক্ট তৈরি করি?
রুচির বড়োনিয়া

@ রুচির বারোনিয়া, আপনাকে ভাগ করে দেওয়া পছন্দগুলির বস্তুটি আরম্ভ করার দরকার নেই এমনভাবে বিভিন্ন বিষয় তৈরি করার দরকার নেই। আপনি উপরের উপায় দ্বারা সংরক্ষণ করতে পারেন। আমার পক্ষ থেকে কিছু প্রয়োজন হলে আমাকে জানান।
হিরেন প্যাটেল

ঠিক আছে, ধন্যবাদ. আপনি আমাকে এই ব্যাপারে সাহায্য করতে পারেন? stackoverflow.com/questions/35235759/…
রুচির বড়োনিয়া

@ রুচির বারোনিয়া, আপনি থ্রেড বাতিল করতে পারেন। আশা করি এটি আপনাকে সহায়তা করবে।
হিরেন প্যাটেল

ওহ, আমি করছি তাই দুঃখিত, আমি করা ভুল question.I এই, তার সম্পর্কে ভাগ পছন্দগুলি :) সম্পর্কে জিজ্ঞাসা বোঝানো stackoverflow.com/questions/35244256/issue-with-if-statement/...
রুচির Baronia

5

ভাগ করা পছন্দগুলিতে মান সংরক্ষণ করতে:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sp.edit();
editor.putString("Name","Jayesh");
editor.commit();

ভাগ করা পছন্দগুলি থেকে মানগুলি পুনরুদ্ধার করতে:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String name = sp.getString("Name", ""); // Second parameter is the default value.

4

সংরক্ষণ

PreferenceManager.getDefaultSharedPreferences(this).edit().putString("VarName","your value").apply();

ফিরে পেতে:

String name = PreferenceManager.getDefaultSharedPreferences(this).getString("VarName","defaultValue");

ডিফল্ট মান হ'ল: এই পছন্দটি বিদ্যমান না থাকলে ফিরিয়ে দিতে মানগুলি।

আপনি "পরিবর্তন করতে পারেন এই " সঙ্গে getActivity () বা getApplicationContext () মধ্যে কিছু কিছু ক্ষেত্রে


আরে, আমার ভাগ করে নেওয়া পছন্দগুলি নিয়ে একটি প্রশ্ন আছে। আপনি কি উত্তর দিতে আপত্তি? stackoverflow.com/questions/35713822/…
রুচির বড়োনিয়া

হ্যাঁ, আমি করেছি ... :)
রুচির বড়োনিয়া

3

আমি অংশীদারিগুলির জন্য একটি সহায়ক শ্রেণি লিখি:

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by mete_ on 23.12.2016.
 */
public class HelperSharedPref {

Context mContext;

public HelperSharedPref(Context mContext) {
    this.mContext = mContext;
}

/**
 *
 * @param key Constant RC
 * @param value Only String, Integer, Long, Float, Boolean types
 */
public void saveToSharedPref(String key, Object value) throws Exception {
    SharedPreferences.Editor editor = mContext.getSharedPreferences(key, Context.MODE_PRIVATE).edit();
    if (value instanceof String) {
        editor.putString(key, (String) value);
    } else if (value instanceof Integer) {
        editor.putInt(key, (Integer) value);
    } else if (value instanceof Long) {
        editor.putLong(key, (Long) value);
    } else if (value instanceof Float) {
        editor.putFloat(key, (Float) value);
    } else if (value instanceof Boolean) {
        editor.putBoolean(key, (Boolean) value);
    } else {
        throw new Exception("Unacceptable object type");
    }

    editor.commit();
}

/**
 * Return String
 * @param key
 * @return null default is null
 */
public String loadStringFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    String restoredText = prefs.getString(key, null);

    return restoredText;
}

/**
 * Return int
 * @param key
 * @return null default is -1
 */
public Integer loadIntegerFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Integer restoredText = prefs.getInt(key, -1);

    return restoredText;
}

/**
 * Return float
 * @param key
 * @return null default is -1
 */
public Float loadFloatFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Float restoredText = prefs.getFloat(key, -1);

    return restoredText;
}

/**
 * Return long
 * @param key
 * @return null default is -1
 */
public Long loadLongFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Long restoredText = prefs.getLong(key, -1);

    return restoredText;
}

/**
 * Return boolean
 * @param key
 * @return null default is false
 */
public Boolean loadBooleanFromSharedPref(String key) throws Exception {
    SharedPreferences prefs = mContext.getSharedPreferences(key, Context.MODE_PRIVATE);
    Boolean restoredText = prefs.getBoolean(key, false);

    return restoredText;
}

}

3

এই উদাহরণটি ব্যবহার করুন সহজ এবং পরিষ্কার এবং চেক

<?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>
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();
         }
      });
   }

}

2

এই সাধারণ লাইব্রেরিটি ব্যবহার করে , এখানে আপনি কীভাবে ভাগ করা পছন্দগুলিতে কল করবেন ..

TinyDB tinydb = new TinyDB(context);

tinydb.putInt("clickCount", 2);

tinydb.putString("userName", "john");
tinydb.putBoolean("isUserMale", true); 

tinydb.putList("MyUsers", mUsersArray);
tinydb.putImagePNG("DropBox/WorkImages", "MeAtlunch.png", lunchBitmap);

//These plus the corresponding get methods are all Included

2

আমি এখানে যুক্ত করতে চেয়েছিলাম যে এই প্রশ্নের জন্য স্নিপেটগুলির বেশিরভাগের মধ্যে SharedPreferences ব্যবহার করার সময় MODE_PRIVATE এর মতো কিছু থাকবে। ঠিক আছে, MODE_PRIVATE এর অর্থ হল যে আপনি এই ভাগ করা পছন্দটিতে যা কিছু লিখছেন কেবলমাত্র আপনার অ্যাপ্লিকেশন দ্বারা পঠনযোগ্য।

আপনি ভাগ করে নেওয়া পছন্দগুলি () পদ্ধতিতে কী কী পাস করুন না কেন, অ্যান্ড্রয়েড সেই নামটি দিয়ে একটি ফাইল তৈরি করে এবং এতে পছন্দসই ডেটা সঞ্চয় করে। এছাড়াও মনে রাখবেন যে আপনার অ্যাপ্লিকেশনের জন্য একাধিক পছন্দসই ফাইল রাখার ইচ্ছা থাকলে getSharedPreferences () ব্যবহার করার কথা। আপনি যদি একক অগ্রাধিকার ফাইলটি ব্যবহার করতে চান এবং এতে সমস্ত কী-মান যুক্তগুলি সংরক্ষণ করেন তবে getSharedPreferences () পদ্ধতিটি ব্যবহার করুন। এটি এত বিস্ময়কর যে কেন উপরের দুটির মধ্যে পার্থক্য বুঝতে না পেরে সকলেই (আমাকে সহ) কেবল getSharedPreferences () স্বাদ ব্যবহার করে।

নিম্নলিখিত ভিডিও টিউটোরিয়ালটি https://www.youtube.com/watch?v=2PcAQ1NBy98 সহায়তা করা উচিত


2

সরল এবং ঝামেলা-মুক্ত :: "Android-SharedPreferences-সহায়ক" লাইব্রেরি

আগের চেয়ে বেশি দেরী: ব্যবহারের জটিলতা এবং প্রচেষ্টা কমাতে সহায়তা করার জন্য আমি "Android-SharedPreferences-Helper" লাইব্রেরি তৈরি করেছি SharedPreferences। এটি কিছু বর্ধিত কার্যকারিতাও সরবরাহ করে। এটি প্রদত্ত কয়েকটি জিনিস নীচে রয়েছে:

  • এক লাইনের সূচনা এবং সেটআপ
  • সহজেই ডিফল্ট পছন্দ বা কাস্টম পছন্দ ফাইল ব্যবহার করবেন কিনা তা নির্বাচন করা
  • প্রতিটি ডেটাটাইপের জন্য পূর্বনির্ধারিত (ডেটা টাইপ ডিফল্ট) এবং কাস্টমাইজযোগ্য (আপনি যা চয়ন করতে পারেন) ডিফল্ট মান
  • মাত্র একটি অতিরিক্ত প্যারামের সাথে একক ব্যবহারের জন্য আলাদা আলাদা ডিফল্ট মান সেট করার ক্ষমতা
  • আপনি ডিফল্ট শ্রেণির জন্য যেমন করেন তেমন অন SharedPreferencesChangeListener নিবন্ধন এবং নিবন্ধন করতে পারেন
dependencies {
    ...
    ...
    compile(group: 'com.viralypatel.sharedpreferenceshelper', name: 'library', version: '1.1.0', ext: 'aar')
}

ভাগ করা পছন্দসই হেল্পার অবজেক্টের ঘোষণা: (শ্রেণি পর্যায়ে প্রস্তাবিত)

SharedPreferencesHelper sph; 

ভাগ করা পছন্দসই হেল্পার অবজেক্টের ইনস্ট্যান্টেশন: (অনক্রিট () পদ্ধতিতে প্রস্তাবিত)

// use one of the following ways to instantiate
sph = new SharedPreferencesHelper(this); //this will use default shared preferences
sph = new SharedPreferencesHelper(this, "myappprefs"); // this will create a named shared preference file
sph = new SharedPreferencesHelper(this, "myappprefs", 0); // this will allow you to specify a mode

ভাগ করা পছন্দগুলিতে মান স্থাপন করা

মোটামুটি সহজ! ডিফল্ট উপায় (SharedPreferences ক্লাস ব্যবহার করার সময়) এর বিপরীতে আপনাকে কল করতে হবে না .edit()এবং .commit()কখনও সময় দেওয়ার প্রয়োজন নেই।

sph.putBoolean("boolKey", true);
sph.putInt("intKey", 123);
sph.putString("stringKey", "string value");
sph.putLong("longKey", 456876451);
sph.putFloat("floatKey", 1.51f);

// putStringSet is supported only for android versions above HONEYCOMB
Set name = new HashSet();
name.add("Viral");
name.add("Patel");
sph.putStringSet("name", name);

এটাই! আপনার মানগুলি ভাগ করা পছন্দগুলিতে সংরক্ষণ করা হয়।

ভাগ করা পছন্দগুলি থেকে মান পাওয়া

আবার, কী নামের সাথে একটি সাধারণ পদ্ধতি কল।

sph.getBoolean("boolKey");
sph.getInt("intKey");
sph.getString("stringKey");
sph.getLong("longKey");
sph.getFloat("floatKey");

// getStringSet is supported only for android versions above HONEYCOMB
sph.getStringSet("name");

এটির অনেকগুলি বর্ধিত কার্যকারিতা রয়েছে

গিটহাব সংগ্রহস্থল পৃষ্ঠায় বর্ধিত কার্যকারিতা, ব্যবহার এবং ইনস্টলেশন সংক্রান্ত নির্দেশাবলী ইত্যাদির বিশদটি পরীক্ষা করুন ।


আমি কি সমস্ত সঞ্চয় করার জন্য একই ভাগ করা পছন্দসই বস্তুটি ব্যবহার করি, বা আমি প্রতিটি পৃথক ডেটার জন্য নতুন ভাগ করা প্রিফ অবজেক্ট তৈরি করি?
রুচির বড়োনিয়া

আপনার যতটা সম্ভব ব্যবহার করা উচিত। এই লাইব্রেরিটি তৈরির পুরো বিষয়টি এটি।
অ্যান্ড্রয়েডমেচনিক - ভাইরাল প্যাটেল

আরে, আমার ভাগ করে নেওয়া পছন্দগুলি নিয়ে একটি প্রশ্ন আছে। আপনি কি উত্তর দিতে আপত্তি? stackoverflow.com/questions/35713822/…
রুচির বড়োনিয়া

2
SharedPreferences.Editor editor = getSharedPreferences("identifier", 
MODE_PRIVATE).edit();
//identifier is the unique to fetch data from your SharedPreference.


editor.putInt("keyword", 0); 
// saved value place with 0.
//use this "keyword" to fetch saved value again.
editor.commit();//important line without this line your value is not stored in preference   

// fetch the stored data using ....

SharedPreferences prefs = getSharedPreferences("identifier", MODE_PRIVATE); 
// here both identifier will same

int fetchvalue = prefs.getInt("keyword", 0);
// here keyword will same as used above.
// 0 is default value when you nothing save in preference that time fetch value is 0.

আপনাকে অ্যাডাপ্টারক্লাস বা অন্য কোনওটিতে ভাগ করা পছন্দগুলি ব্যবহার করতে হবে। এই সময়টি কেবল এই ঘোষণাটি ব্যবহার করুন এবং উপরে একই গাধা ব্যবহার করুন।

SharedPreferences.Editor editor = context.getSharedPreferences("idetifier", 
Context.MODE_PRIVATE).edit();
SharedPreferences prefs = context.getSharedPreferences("identifier", Context.MODE_PRIVATE);

//here context is your application context

স্ট্রিং বা বুলিয়ান মান জন্য

editor.putString("stringkeyword", "your string"); 
editor.putBoolean("booleankeyword","your boolean value");
editor.commit();

উপরের মতো ডেটা আনুন

String fetchvalue = prefs.getString("keyword", "");
Boolean fetchvalue = prefs.getBoolean("keyword", "");

2

2. শেয়ার করা অগ্রাধিকার মধ্যে সংরক্ষণের জন্য

SharedPreferences.Editor editor = 
getSharedPreferences("DeviceToken",MODE_PRIVATE).edit();
                    editor.putString("DeviceTokenkey","ABABABABABABABB12345");
editor.apply();

2. একই ব্যবহার পুনরুদ্ধার করার জন্য

    SharedPreferences prefs = getSharedPreferences("DeviceToken", 
 MODE_PRIVATE);
  String deviceToken = prefs.getString("DeviceTokenkey", null);

1

এখানে আমি অ্যান্ড্রয়েডে পছন্দগুলি ব্যবহার করতে একটি সহায়ক শ্রেণি তৈরি করেছি।

এটি হেল্পার ক্লাস:

public class PrefsUtil {

public static SharedPreferences getPreference() {
    return PreferenceManager.getDefaultSharedPreferences(Applicatoin.getAppContext());
}

public static void putBoolean(String key, boolean value) {
    getPreference().edit().putBoolean(key, value)
            .apply();
}

public static boolean getBoolean(String key) {
    return getPreference().getBoolean(key, false);
}

public static void putInt(String key, int value) {

    getPreference().edit().putInt(key, value).apply();

}

public static void delKey(String key) {

    getPreference().edit().remove(key).apply();

}

}

1

ফাংশন উপায়ে গ্লোবাল ভেরিয়েবলগুলি সঞ্চয় এবং পুনরুদ্ধার করতে। পরীক্ষা করার জন্য, নিশ্চিত করুন যে আপনার পৃষ্ঠায় টেক্সটভিউ আইটেম রয়েছে, কোডের দুটি লাইনকে সংঘাতবদ্ধ করে রান করুন। তারপরে আবার দুটি লাইনে মন্তব্য করুন, এবং চালান।
এখানে টেক্সটভিউয়ের আইডিটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড।

প্রতিটি ক্লাসে যেখানে আপনি এটি ব্যবহার করতে চান, শেষে এই দুটি রুটিন যুক্ত করুন। আমি এই রুটিনটি বিশ্বব্যাপী রুটিন হতে চাই তবে কীভাবে তা জানি না। এইটা কাজ করে.

ভেরিয়েবলগুলি সর্বত্র উপলব্ধ। এটি "মাইফাইলে" ভেরিয়েবলগুলি সঞ্চয় করে। আপনি এটি আপনার উপায় পরিবর্তন করতে পারেন।

আপনি এটি ব্যবহার করে কল

 storeSession("username","frans");
 storeSession("password","!2#4%");***

পরিবর্তনশীল ব্যবহারকারীর নামটি "ফ্রান্স" এবং "! 2 # 4%" দিয়ে পাসওয়ার্ড দিয়ে পূর্ণ হবে। পুনরায় চালু করার পরেও তারা উপলব্ধ।

এবং আপনি এটি ব্যবহার করে পুনরুদ্ধার করুন

 password.setText(getSession(("password")));
 usernames.setText(getSession(("username")));

আমার গ্রিড.জভা পুরো কোড নীচে

    package nl.yentel.yenteldb2;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class Grid extends AppCompatActivity {
    private TextView usernames;
    private TextView password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_grid);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

      ***//  storeSession("username","frans.eilering@gmail.com");
        //storeSession("password","mijn wachtwoord");***
        password = (TextView) findViewById(R.id.password);
        password.setText(getSession(("password")));
        usernames=(TextView) findViewById(R.id.username);
        usernames.setText(getSession(("username")));
    }

    public void storeSession(String key, String waarde) { 
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        editor.putString(key, waarde);
        editor.commit();
    }

    public String getSession(String key) {
//http://androidexample.com/Android_SharedPreferences_Basics/index.php?view=article_discription&aid=126&aaid=146
        SharedPreferences pref = getApplicationContext().getSharedPreferences("MyFile", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref.edit();
        String output = pref.getString(key, null);
        return output;
    }

    }

নীচে আপনি পাঠ্যদর্শন আইটেমগুলি সন্ধান করুন

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="usernames"
    android:id="@+id/username"
    android:layout_below="@+id/textView"
    android:layout_alignParentStart="true"
    android:layout_marginTop="39dp"
    android:hint="hier komt de username" />

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="password"
    android:id="@+id/password"
    android:layout_below="@+id/user"
    android:layout_alignParentStart="true"
    android:hint="hier komt het wachtwoord" />

1

আমার জীবনকে সহজ করার জন্য আমি একটি সহায়ক শ্রেণি তৈরি করেছি। এটি একটি জেনেরিক ক্লাস এবং এর প্রচুর পদ্ধতি রয়েছে যা সাধারণত ভাগ করা পছন্দসমূহ, ইমেল বৈধতা, তারিখের সময় ফর্ম্যাট এর মতো অ্যাপ্লিকেশনে ব্যবহৃত হয়। আপনার কোডে এই শ্রেণিটি অনুলিপি করুন এবং আপনার প্রয়োজন যেখানেই এর পদ্ধতিগুলিতে অ্যাক্সেস করুন।

 import android.app.AlertDialog;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.SharedPreferences;
 import android.support.v4.app.FragmentActivity;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.Toast;

 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Random;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;

/**
* Created by Zohaib Hassan on 3/4/2016.
*/
 public class Helper {

private static ProgressDialog pd;

public static void saveData(String key, String value, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.putString(key, value);
    editor.commit();
}

public static void deleteData(String key, Context context){
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    SharedPreferences.Editor editor;
    editor = sp.edit();
    editor.remove(key);
    editor.commit();

}

public static String getSaveData(String key, Context context) {
    SharedPreferences sp = context.getApplicationContext()
            .getSharedPreferences("appData", 0);
    String data = sp.getString(key, "");
    return data;

}




public static long dateToUnix(String dt, String format) {
    SimpleDateFormat formatter;
    Date date = null;
    long unixtime;
    formatter = new SimpleDateFormat(format);
    try {
        date = formatter.parse(dt);
    } catch (Exception ex) {

        ex.printStackTrace();
    }
    unixtime = date.getTime();
    return unixtime;

}

public static String getData(long unixTime, String formate) {

    long unixSeconds = unixTime;
    Date date = new Date(unixSeconds);
    SimpleDateFormat sdf = new SimpleDateFormat(formate);
    String formattedDate = sdf.format(date);
    return formattedDate;
}

public static String getFormattedDate(String date, String currentFormat,
                                      String desiredFormat) {
    return getData(dateToUnix(date, currentFormat), desiredFormat);
}




public static double distance(double lat1, double lon1, double lat2,
                              double lon2, char unit) {
    double theta = lon1 - lon2;
    double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2))
            + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2))
            * Math.cos(deg2rad(theta));
    dist = Math.acos(dist);
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;
    if (unit == 'K') {
        dist = dist * 1.609344;
    } else if (unit == 'N') {
        dist = dist * 0.8684;
    }
    return (dist);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts decimal degrees to radians : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double deg2rad(double deg) {
    return (deg * Math.PI / 180.0);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts radians to decimal degrees : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private static double rad2deg(double rad) {
    return (rad * 180.0 / Math.PI);
}

public static int getRendNumber() {
    Random r = new Random();
    return r.nextInt(360);
}

public static void hideKeyboard(Context context, EditText editText) {
    InputMethodManager imm = (InputMethodManager) context
            .getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}

public static void showLoder(Context context, String message) {
    pd = new ProgressDialog(context);

    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void showLoderImage(Context context, String message) {
    pd = new ProgressDialog(context);
    pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pd.setCancelable(false);
    pd.setMessage(message);
    pd.show();
}

public static void dismissLoder() {
    pd.dismiss();
}

public static void toast(Context context, String text) {

    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
/*
     public static Boolean connection(Context context) {
    ConnectionDetector connection = new ConnectionDetector(context);
    if (!connection.isConnectingToInternet()) {

        Helper.showAlert(context, "No Internet access...!");
        //Helper.toast(context, "No internet access..!");
        return false;
    } else
        return true;
}*/

public static void removeMapFrgment(FragmentActivity fa, int id) {

    android.support.v4.app.Fragment fragment;
    android.support.v4.app.FragmentManager fm;
    android.support.v4.app.FragmentTransaction ft;
    fm = fa.getSupportFragmentManager();
    fragment = fm.findFragmentById(id);
    ft = fa.getSupportFragmentManager().beginTransaction();
    ft.remove(fragment);
    ft.commit();

}

public static AlertDialog showDialog(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(message);

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int id) {
            // TODO Auto-generated method stub

        }
    });

    return builder.create();
}

public static void showAlert(Context context, String message) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setTitle("Alert");
    builder.setMessage(message)
            .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                }
            }).show();
}

public static boolean isURL(String url) {
    if (url == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern
                .compile(
                        "\\b(?:(https?|ftp|file)://|www\\.)?[-A-Z0-9+&#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]\\.[-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]",
                        Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(url);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean atLeastOneChr(String string) {
    if (string == null)
        return false;

    boolean foundMatch = false;
    try {
        Pattern regex = Pattern.compile("[a-zA-Z0-9]",
                Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
        Matcher regexMatcher = regex.matcher(string);
        foundMatch = regexMatcher.matches();
        return foundMatch;
    } catch (PatternSyntaxException ex) {
        // Syntax error in the regular expression
        return false;
    }
}

public static boolean isValidEmail(String email, Context context) {
    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        // Helper.toast(context, "Email is not valid..!");

        return false;
    }
}

public static boolean isValidUserName(String email, Context context) {
    String expression = "^[0-9a-zA-Z]+$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        return true;
    } else {
        Helper.toast(context, "Username is not valid..!");
        return false;
    }
}

public static boolean isValidDateSlash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDash(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

public static boolean isValidDateDot(String inDate) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd.mm.yyyy");
    dateFormat.setLenient(false);
    try {
        dateFormat.parse(inDate.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.