همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

آموزش ذخیره اطلاعات توسط SharedPreferences در برنامه نویسی اندروید

آموزش ذخیره اطلاعات توسط SharedPreferences در برنامه نویسی اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
متن   ,   تصویر
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
یادگیری این آموزش

به نام خدا

سلام دوستان عزیز همیار اندروید

در این آموزش میخام SharedPreferences رو آموزش بدم

 

 

SharedPreferences چیست ؟

SharedPreferences یک محل ذخیره سازی برای یک سری اطلاعات با حجم کم هستش که درفایل اصلی اپلیکیشن ذخیره می شوند

از آن جهت که SharedPreferences هر اپلیکیشن مخصوص همان اپلیکیشن هستش پس دیگر از سایر

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

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

نوع نمایش لیست ها ،دریافت کردن یا نکردن نوتیفیکیشن ها و خیلی اطلاعات دیگر اما با حجم کم

 

مثال :

یک نوع از کاربرد SharedPreferences را با مثال براتون توضیح میدم که بیشتر این مبحث را درک کنید

من یک EditText دارم و میخام بار اولی که وارد برنامه میشم یک مقدار درون آن بنویسم

و هر موقع از برنامه خارج میشم و دوباره وارد برنامه میشم همون مقدار درون EditText باشه 

یعنی ذخیره بشه و هر بار لازم نباشه  که EditText رو پر کنم 

به عبارت دیگر این کار ذخیره بشه و از تکرار جلوگیری کنه

و همچنین من بتونم مقدار را ویرایش یا پاک کنم و مقدار ویرایش شده را ذخیره کنم

خب میرم برای شروع آموزش

 

 

 

قدم اول

یک EditText برای نوشتن مقدار و یک Button برای انجام عملیات ذخیره کردن مقدار

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HamyarAndroid.com"
        android:textColor="#4BB84F"
        android:textSize="30sp" />

    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="نام"
        android:layout_marginTop="200dp"
        android:layout_marginEnd="15dp"
        android:layout_marginStart="15dp"/>

    <Button
        android:id="@+id/btn_save"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="ذخیره"
        android:layout_marginTop="50dp"/>




</LinearLayout>

 

 

قدم دوم

در این مرحله من باید در MainActivity کدهای جاو رو بنویسم

طبق کدهای زیر من میام و کلاس خودمو تکمیل میکنم و در پایان خط به خط براتون توضیح میدم

MainActivity.java

package com.hamyarandroid.sharedpreferences;

        import androidx.appcompat.app.AppCompatActivity;

        import android.content.Context;
        import android.content.SharedPreferences;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.Button;
        import android.widget.EditText;
        import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText editText;
    Button button;
    SharedPreferences Pref;

    public static final String Name = "Key";

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

        editText =  findViewById(R.id.name);
        button = findViewById(R.id.btn_save);
        Pref = getSharedPreferences("PrefFile", Context.MODE_PRIVATE);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String FirstName = editText.getText().toString();
                SharedPreferences.Editor shEdit = Pref.edit();
                shEdit.putString(Name, FirstName);
                shEdit.apply();

                Toast.makeText(MainActivity.this, "ذخیره شد", Toast.LENGTH_LONG).show();

            }
        });

        if (Pref.contains(Name)) {
            editText.setText(Pref.getString(Name, null));
        }
    }
}

خط های 15 و 16

EditeText و Button را معرفی کردم

خط 17

من اومدم و یک نمونه از SharedPreferences ایجاد کردم و نامش رو Pref گذاشتم

خط 26 و 27

ادیت تکست و باتن رو به آی دی هاشون  در لایوت متصل کردم

خط 28

من در این خط میام و Pref رو مساوی با ()getSharedPreferences قرار میدم که دارای دوپارامتر name و mode هستش

که name مقدارش اختیاری هست و هر نامی میخایم میتونیم بزاریم

و کار ذخیره اطلاعات درون یک فایل از اپلیکیشن رو بر عهده  داره که من نامش رو PrefFile گذاشتم

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

که من در اینجا از نوع MODE_PRIVATE استفاده کردم چون میخام هر موقع برنامه اجرا شد

فایلی که اطلاعاتم درونش ذخیره شدن رو در دسترس قرار بده

خط 30

به Button خاصیت کلیک میدم

خط 34

یک استرینگ ایجاد میکنم به نام FirstName که مقدار نوشته شده در EditeText را دریافت کند و به استرینگ تبدیل کند

خط 35

در اینجا من اطلاعات را ذخیره می کنم

که برای این کار یک SharedPreferences.Editor میسازیم و نامش را shEdit میزاریم

و توسط  () shPref.edit اطلاعات رو ذخیره میکنیم

خط 36

توسط putString l مقدار FirstName را درون Name میریزیم

خط 37

در آخرین مرحله تغییرات صورت گرفته توسط این خط ذخیره می شوند

خط 39

یک پیغام برای کاربر که اطلاعاتش با زدن دکمه ذخیره می شود

خط 44 و 45

با ایجاد یک شرط گفتیم اگر EditText خالی بود مقدار خالی را برای ما ذخیره کن

 

خروجی کد بالا را میتوانید در پایین ببینید

 

 

امیدوارم از این آموزش استفاده مفید را ببرید

پیروز و موفق و سربلند باشین

HRoid.ir/t190
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
خلـــق هـمیـار انـدرویــد با
logo-samandehi