خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

فیلم آموزشی ذخیره اطلاعات SharedPreferences.Editor

فیلم آموزشی ذخیره اطلاعات SharedPreferences.Editor

فیلم آموزشی ذخیره اطلاعات SharedPreferences.Editor

آموزش کار با  SharedPreferences.Editor

SharedPreferences.Editor

سلام دوستان عزیز خانه اندروید در این پست می خواهیم بپردازیم به ذخیره اطلاعات به روش SharedPreferences.Editor هست. توی آموزش قبل اومدیم از حافظه داخلی به روش فایل اطلاعات رو خواندیم و هم نوشتیم .اگر آموزش قبل رو مشاهده نکردید حتما فیلم آموزشی جلسه پیش رو ببنید تا بهتر بتونید متوجه شید که چطور می خواهم اطاعات رو ذخیره کنیم و بخونیم.

خواندن اطلاعات حافظه داخلی فایل ها FileInputStream

نکته : فیلم آموزشی این قسمت در انتهای همین پست قرار گرفته شده است و برای هرچه بهتر یادگیری حتما دانلود کنید.

اما بریم سراغ توضیحات تکمیلی برای SharedPreferences.Editor :

SharedPreferences چیست ؟ چرا استفاده می کنیم : بزارید براتون مثالی جامعه ازش بزنیم که قابل درک باشه برای همه دوستان . تصویر کنید اپلیکیشنی را نوشتید کاربر پس اجرا اپلیکیشن شما در بخش splash اسکرین آهنگی را قرار دادید که به محض باز شدن اکتیویتی اسپلش شروع به بخش می کند و مشکلی هست اینه که کاربر دوست نداره دفعه بعد اومد داخل اپلیکیشن و وارد اسپلش شد دیگه آهنگی براش پخش بشه پس شما باید در بخش تنظیمات قسمتی رو قرار بدید که کاربر انتخاب کنه بخواهد آهنگ براش پخش بشه یا نشه .

و یا در نظر بگیرد که توی کلی گروه و کانال تگلرام عضو هستید و قسمت notification هر کدام از گروه و کانال رو می توانید غیر فعال کنید و انتظار دارید پس از ورود دوباره به اپلیکیشن تلگرام گروه ها براتون قسمت notification غیر فعال باشه پس برای این روش از SharedPreferences استفاده می کنیم.اما ، ما در این پست فقط به قسمت PutString می پردازیم و کاری که انجام می دهیم. نام و نام خانوادگی و آدرس وبسایت شخصی رو دریافت و ذخیره می کنیم.

روش اول  SharedPreferences.Editor :

لطفا پروژه جدیدی را ایجاد کنید . اگر یاد ندارید پروژه جدید را ایجاد کنید از لینک زیر این آموزش رو حتما ببنید:

ایجاد پروژه جدید اندروید استودیو Android Studio

اما بریم سراغ ادامه آموزش پس از ایجاد کردن پروژه جدید در بخش xml یا دیزاین سورس کد زیر را تایپ کنید و یا ctrl+c و در بخش سورس کد دیزاین ctrl+v

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.app.homeandroidir.sharedpreferences_homeandroidir.MainActivity"
    android:orientation="vertical"
    android:weightSum="1">


    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/Etxt_name"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/Etxt_family"
        android:layout_weight="0.02" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/Etxt_site"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:gravity="center">
        <Button
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:text="@string/btn_view"
            android:id="@+id/btnview_inforamtion"/>

        <Button
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:id="@+id/btnsave_information"
            android:text="@string/btnsave"/>


    </LinearLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:id="@+id/Txt_view_name"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:id="@+id/Txt_view_family"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:id="@+id/Txt_view_site"/>


</LinearLayout>

توضیحات سورس کد بالا :

برای ذخیره سازی اطلاعات SharedPreferences.Editor 

سه تا Edittext نیاز داریم برای گرفتن نام و نام خانوادگی و آدرس وبسایت شخص مورد نظر سپس دو تا دکمه نیاز داریم برای ذخیره و نمایش اطلاعات و مرحله آخر نمایش اطلاعات که سه تا TextView نیاز داریم.لطفا سورس کد بالا رو به دقت نگاه کنید دوستان کاملا واضح براتون توضیح دادم و در دوباره یادآوری می کنم که دوستان فیلم آموزشی در انتهای پست هست و می توانید دانلود کنید.

سورس کد بخش جاوا :

package com.app.homeandroidir.sharedpreferences_homeandroidir;

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

public class MainActivity extends AppCompatActivity {

    EditText EditTextname,EditTextfamily,EditTextsite;
    Button btnsave,btnview;
    TextView textViewname,textViewfamily,textViewsite;
    SharedPreferences sharedpredata;
    static String filename="";

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

        cast();

        btnsave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pach();
                SharedPreferences.Editor shEditor= sharedpredata.edit();
                shEditor.putString("keyname",EditTextname.getText().toString());
                shEditor.putString("keyfamily",EditTextfamily.getText().toString());
                shEditor.putString("keysite",EditTextsite.getText().toString());
                 shEditor.commit();
                Toast.makeText(MainActivity.this, "اطلاعات با موفیت ذخیره شد.", Toast.LENGTH_SHORT).show();
            }
        });

        btnview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pach();
                String name=sharedpredata.getString("keyname","متاسفانه نامی وارد نشده است");
                String  family=sharedpredata.getString("keyfamily","نام خانوادگی وارد نشده است.");
                String  site=sharedpredata.getString("keysite","ادرس وبسایت وارد نشده است.");
                textViewname.setText(name.toString());
                textViewfamily.setText(family.toString());
                textViewsite.setText(site.toString());

            }
        });




    }
    void pach()
    {  sharedpredata = getSharedPreferences(filename,0);

    }

    void cast()
    {
        EditTextname =(EditText)findViewById(R.id.Etxt_name);
        EditTextfamily=(EditText)findViewById(R.id.Etxt_family);
        EditTextsite=(EditText)findViewById(R.id.Etxt_site);
        btnsave=(Button) findViewById(R.id.btnsave_information);
         btnview=(Button) findViewById(R.id.btnview_inforamtion);
        textViewname=(TextView) findViewById(R.id.Txt_view_name);
         textViewfamily=(TextView) findViewById(R.id.Txt_view_family);
        textViewsite=(TextView) findViewById(R.id.Txt_view_site);

    }

}

توضیح سورس کد بخش جاوا :

اول اومدیم معرفی کردیم دکمه و .. :

EditText EditTextname,EditTextfamily,EditTextsite;
    Button btnsave,btnview;
    TextView textViewname,textViewfamily,textViewsite;
    SharedPreferences sharedpredata;
    static String filename="";

سپس پس از معرفی تابع کست cast رو نوشتیم برای متصل کردن جاوا به بخش دیزاین:

 void cast()
    {
        EditTextname =(EditText)findViewById(R.id.Etxt_name);
        EditTextfamily=(EditText)findViewById(R.id.Etxt_family);
        EditTextsite=(EditText)findViewById(R.id.Etxt_site);
        btnsave=(Button) findViewById(R.id.btnsave_information);
         btnview=(Button) findViewById(R.id.btnview_inforamtion);
        textViewname=(TextView) findViewById(R.id.Txt_view_name);
         textViewfamily=(TextView) findViewById(R.id.Txt_view_family);
        textViewsite=(TextView) findViewById(R.id.Txt_view_site);

    }

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

 btnsave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pach();
                SharedPreferences.Editor shEditor= sharedpredata.edit();
                shEditor.putString("keyname",EditTextname.getText().toString());
                shEditor.putString("keyfamily",EditTextfamily.getText().toString());
                shEditor.putString("keysite",EditTextsite.getText().toString());
                 shEditor.commit();
                Toast.makeText(MainActivity.this, "اطلاعات با موفیت ذخیره شد.", Toast.LENGTH_SHORT).show();
            }
        });

و برای نمایش اطلاعات متد زیر را پیاده سازی کرده ایم.

 btnview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                pach();
                String name=sharedpredata.getString("keyname","متاسفانه نامی وارد نشده است");
                String  family=sharedpredata.getString("keyfamily","نام خانوادگی وارد نشده است.");
                String  site=sharedpredata.getString("keysite","ادرس وبسایت وارد نشده است.");
                textViewname.setText(name.toString());
                textViewfamily.setText(family.toString());
                textViewsite.setText(site.toString());

            }
        });

و در آخر چون یک مقدار تکراری داریم در یک زیر روال قرار دادیم و فراخونی کرده ایم.

    void pach()
    {  sharedpredata = getSharedPreferences(filename,0);

    }

 

خانه اندروید دانلود فیلم آموزشی  لطفا فیلم آموزشی رو هم ببنید برای توضیحات بیشتر :

homeandroid.ir  دانلود فیلم آموزشی ذخیره اطلاعات SharedPreferences.Editor

حجم فیلم آموزشی   حجم فیلم : ۳۹ مگابایت

پسورد فایل   پسورد فایل فشرده : homeandroid.ir

خانه اندروید منبع آموزش : خانه اندروید

 

 

 

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

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

6 دیدگاه

  1. محمد گفت:

    سلام من سوال دارم آیا میتونم تماس هم بگیرم

  2. Sarman گفت:

    سلام
    من میخوام یه int اولیه تعریف کنم که مثلا مقدارش 0 هست بعد با عملیاتی مثل کلیک دکمه 10 تا اضافه بشه چجوری میتونم تغییر مقدار int رو ذخیره کنم؟

    • سلام بزرگوار برای ذخیره شما باید اول به String تبدیل کنید و سپس ذخیره کنید.
      SharedPreferences sp = getSharedPreferences(“your_prefs”, Activity.MODE_PRIVATE);
      SharedPreferences.Editor editor = sp.edit();
      editor.putInt(“your_int_key”, Stringvalueof(yourIntValue));
      editor.commit();

  3. مصیب گفت:

    آقای ادمین فهمیدم قضیه چیه.
    اشتباه از خودم بود که برای مقدار خالی بهش یه متنی داده بودم و فکر میکردم از قبل توش ذخیره شده.
    ببخشید