Shared Preferences در برنامه نویسی اندروید

3 سال پیش

Shared Preferences در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد Shared Preferences در برنامه نویسی اندروید صحبت خواهیم کرد.

 

اندروید روش های زیادی برای ذخیره داده های یک برنامه فراهم می کند. یکی از این راهها Shared Preference نامیده می شود. Shared Preference به شما امکان می دهد داده ها را به صورت قالب key و مقدار pair ذخیره و بازیابی کنید.

برای استفاده از Shared Preference، شما باید یک متد ()getSharedPreferences  را فراخوانی کنید که یک نمونه SharedPreference را به پرونده ای که حاوی مقادیر تنظیمات است نشان می دهد.

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

پارامتر اول key است و پارامتر دوم MODE است. غیر از خصوصی حالت های دیگری نیز وجود دارد که در زیر لیست شده است:

  • MODE_APPEND

این تنظیمات جدید را با تنظیمات موجود اضافه می کند

  • MODE_ENABLE_WRITE_AHEAD_LOGGING

flag دیتابیس اطلاعات هنگامی که تنظیم می شود، به طور پیش فرض login را فعال می کند

  • MODE_MULTI_PROCESS

این متد حتی اگر نمونه Shared Preference قبلاً دانلود شده باشد، تغییرات تنظیمات را بررسی می کند

  • MODE_PRIVATE

با تنظیم این حالت، فقط با استفاده از فراخوانی برنامه می توان به فایل دسترسی داشت

  • MODE_WORLD_READABLE

این حالت به برنامه های دیگر اجازه می دهد تا Shared Preference را بخوانند

  • MODE_WORLD_WRITEABLE

این حالت به برنامه دیگر اجازه می دهد تا Shared Preference را بنویسند

 

با استفاده از کلاس SharedPreferences.Editor می توانید چیزی را در Shared Preference ذخیره کنید.

شما روش  SharedPreference ،editرا فراخوانی خواهید کرد و آن را در یک شی editor دریافت خواهید کرد. نحو آن است –

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

جدا از متد putString، متد هایی در کلاس editor موجود است که امکان دستکاری داده ها را در Shared Preference فراهم می کند. آنها به شرح زیر ذکر شده اند:

  • ()apply

این یک متد انتزاعی است. این تغییرات شما را از editor به شی  sharedPreference که شما فراخوانی می کنید، اعمال می کند.

  • ()clear

همه مقادیر را از editor حذف می کند

  • (remove(String key

مقداری که کلید آن به عنوان یک پارامتر ارسال شده است را حذف می کند

  • (putLong(String key, long value

این مقدار طولانی را در یک preference editor ذخیره می کند

  • (putInt(String key, int value

این یک مقدار صحیح را در یک preference editor ذخیره می کند

  • (putFloat(String key, float value)

این مقدار float را در یک preference editor ذخیره می کند

 

مثال

این مثال استفاده از Shared Preferences در برنامه نویسی اندروید را نشان می دهد. این یک صفحه نمایش با برخی از زمینه های متنی را نشان می دهد، که مقدار آن ذخیره می شود با بسته شدن برنامه و بازگرداندن آن دوباره باز شود.

برای آزمایش این مثال، لازم است پس از توسعه برنامه با توجه به مراحل زیر، این مورد را روی دستگاه واقعی اجرا کنید:

 

شرح مراحل 

۱- شما برای ایجاد یک برنامه اندروید تحت یک پکیج com.example.sairamkrishna.myapplication از Android studio استفاده خواهید کرد.
۲- فایل src / MainActivity.java را تغییر دهید تا کد پیشرفت را برای progress dialog پیشرفت چرخش اضافه کنید.
۳- برای اضافه کردن کد XML مربوطه ، فایل res / layout / activity_main.xml را تغییر دهید.
۴- برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

در زیر محتوای 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();
         }
      });
   }

}

در زیر محتوای فعالیت اصلی تغییر یافته fileres / 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>

بیایید برنامه خود را اجرا کنیم! من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

دستگاه تلفن همراه خود را به عنوان گزینه انتخاب کنید و سپس دستگاه همراه خود را بررسی کنید که در زیر صفحه نمایش داده می شود –

اکنون کافی است متن مورد نظر را وارد کنید. مثل اینکه چند نام تصادفی و اطلاعات دیگر قرار داده و روی دکمه save کلیک کنید.

اکنون با فشار دادن دکمه save، متن در Shared Preferences ذخیره می شود. اکنون دکمه back را فشار دهید و از برنامه خارج شوید. حالا دوباره آن را باز کنید و تمام متنی را که نوشتید در برنامه خود مشاهده خواهید کرد.

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

    1. نگاهی کلی به برنامه نویسی اندروید
    2. تنظیمات محیط  در برنامه نویسی اندروید
    3. معماری برنامه نویسی اندروید
    4. اجزای برنامه در برنامه نویسی اندروید
    5. Hello World در برنامه نویسی اندروید
    6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
    7. فعالیت در برنامه نویسی اندروید
    8. سرویس در برنامه نویسی اندروید
    9. گیرنده های پخش در برنامه نویسی اندروید
    10. ارائه دهنده محتوا در برنامه نویسی اندروید
    11. قطعات در برنامه نویسی اندروید
    12. Intent و فیلتر در برنامه نویسی اندروید
    13. طرح بندی رابط کاربری در برنامه نویسی اندروید
    14. کنترل های رابط کاربری در برنامه نویسی اندروید
    15. مدیریت رویدادها در برنامه نویسی اندروید
    16. استایل و تم ها در برنامه نویسی اندروید
    17. اجزای سفارشی در برنامه نویسی اندروید
    18. کشیدن و رها کردن در برنامه نویسی اندروید
    19. نوتیفیکیشن ها در برنامه نویسی اندروید
    20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
    21. ارسال ایمیل در برنامه نویسی اندروید
    22. ارسال پیامک در برنامه نویسی اندروید
    23. تماس های تلفنی در برنامه نویسی اندروید
    24. انتشار برنامه اندروید
    25. آموزش Alert Dialog در برنامه نویسی اندروید
    26. انیمیشن در برنامه نویسی اندروید
    27. ضبط صدا در برنامه نویسی اندروید
    28. مدیریت صدا در برنامه نویسی اندروید
    29. آموزش Auto Complete در برنامه نویسی اندروید
    30. بهترین شیوه ها در برنامه نویسی اندروید
    31. بلوتوث در برنامه نویسی اندروید
    32. استفاده از دوربین در برنامه نویسی اندروید
    33. کلیپ بورد در برنامه نویسی اندروید
    34. فونت سفارشی در برنامه نویسی اندروید
    35. پشتیبان گیری از داده ها در برنامه نویسی اندروید
    36.  ابزارهای توسعه دهنده در برنامه نویسی اندروید
    37. آموزش شبیه ساز در برنامه نویسی اندروید
    38. اتصال به فیس بوک در برنامه نویسی اندروید
    39. حرکات لمسی در برنامه نویسی اندروید
    40. آموزش گوگل مپ در برنامه نویسی اندروید
    41. افکت های تصویر در برنامه نویسی اندروید
    42. Image Switcher در برنامه نویسی اندروید
    43. حافظه داخلی در برنامه نویسی اندروید
    44. آموزش کار با JetPlayer در برنامه نویسی اندروید
    45. JSON Parser در برنامه نویسی اندروید
    46. ارتباط با LinkedIn در برنامه نویسی اندروید
    47. نوار پیشرفت Spinner در برنامه نویسی اندروید
    48. بومی سازی در برنامه نویسی اندروید
    49. صفحه Login در برنامه نویسی اندروید
    50. MediaPlayer در برنامه نویسی اندروید
    51. Multitouch در برنامه نویسی اندروید
    52. Navigation در برنامه نویسی اندروید
    53. اتصال به اینترنت در برنامه نویسی اندروید
    54. NFC در برنامه نویسی اندروید
    55. PHP و MYSQL در برنامه نویسی اندروید
    56. Progress Circle دربرنامه نویسی اندروید
    57. Progress Bar در برنامه نویسی اندروید
    58. Push Notification در برنامه نویسی اندروید
    59. RenderScript در برنامه نویسی اندروید
    60. RSS Reader در برنامه نویسی اندروید
    61. Screen cast در برنامه نویسی اندروید
    62. SDK Manager در برنامه نویسی اندروید
    63. سنسورها در برنامه نویسی اندروید
    64. Session در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه