کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش به اشتراک گذاری منابع اندروید

 

clip_image001

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

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

 

آموزش به اشتراک گذاری منابع اندروید

اندروید روش های زیادی برای ذخیره ی داده ی یک برنامه ارائه می دهد. یکی از این راه ها Shared Preferences می باشد. Shared Preferences به شما اجازه می دهد تا داده را به شکل جفت کلید / مقدار (key/ value)  ذخیره و بازیابی کنید.

برای استفاده از این برنامه باید روشی از getSharedPreferences() را فرابخوانید که یک نمونه از SharedPreference را با اشاره به فایلی که شامل مقادیر preferences می شود، گزارش می دهد.

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

     

اولین پارامتر کلید و دومین پارامتر MODE ( روش) می باشد. علاوه بر اینها روش های دیگری هم وجود دارند که در جدول زیر ارائه شده اند.

ردیف

Mode and description

1

MODE_APPEND

Preference های جدید را با preference  های تقریبا موجود یکی می کند.

2

MODE_ENABLE_WRITE_AHEAD_LOGGING

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

3

MODE_MULTI_PROCESS

این روش تعدیل preferenceها را چک خواهد کرد، حتی اگر نمونه ی sharedpreference تقریبا بارگذاری شده باشد.

4

MODE_PRIVATE

با تنظیم این روش فایل تنها با استفاده از فراخوانی برنامه در دسترس خواهد بود.

5

MODE_WORLD_READABLE

این روش به برنامه های دیگر اجازه می دهد تا preference را بخوانند.

6

MODE_WORLD_WRITEABLE

این روش به دیگر برنامه ها اجازه می دهد تا دیگر برنامه ها را بنویسند.

 

شما می توانید با استفاده از گروه SharedPreferences.Editor چیزی روی SharedPreferences ذخیره کنید. روش ویرایش را از نمونه ی SharedPreference فرابخوانید و آن را در یک آبجکت ویرایشگر دریافت خواهید کرد. ترکیب آن مانند زیر می باشد.

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

 

علاوه بر روش putString روش های دیگری در گروه ویرایشگر هستند که امکان اجرای داده را در داخل SharedPreference فراهم می کنند. در جدول زیر این روش ها را مشاهده می کنید.

ردیف

Mode and description

1

apply()
It is an abstract method. It will commit your changes back from editor to the sharedPreference object you are calling

2

clear()

تمام مقادیر را از ویرایشگر حذف خواهد کرد.

3

remove(String key)

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

4

putLong(String key, long value)

یک مقدار بلند را در یک ویرایشگر preference ذخیره خواهد کرد.

5

putInt(String key, int value)

یک مقدار صحیح را در یک ویرایشگر preference ذخیره خواهد کرد.

6

putFloat(String key, float value)

یک مقدار معلق را در یک ویرایشگر preference ذخیره خواهد کرد.

 

مثال

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

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

مراحل

توضیحات

1

برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان  SharedPreferences تحت بسته ی com.example.sharedpreferences نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.

2

فایل src/MainActivity.java را برای افزودن کد پیشروی و نمایش دیالوگ  دایره ی پیشروی تغییر دهید.

3

فایل res/layout/activity_main.xml را برای افزودن کد XML مربوطه تغییر دهید.

4

فایل res/values/string.xml را برای افزودن یک پیام به عنوان یک رشته ی ثابت تغییر دهید.

5

برنامه را اجرا کرده و یک دستگاه اجرایی اندروید انتخاب کنید، برنامه را روی آن نصب کرده و نتایج را بررسی کنید.

 

در ادامه محتوای فایل تغییریافته ی فعالیت اصلی را مشاهده می کنید.

src/com.example.sharedpreferences/MainActivity.java.
       
package com.example.sharedpreferences;
       
import com.example.sharedpreferences.*;
       
import android.os.Bundle;
       
import android.app.Activity;
       
import android.content.Context;
       
import android.content.SharedPreferences;
       
import android.content.SharedPreferences.Editor;
       
import android.view.Menu;
       
import android.view.View;
       
import android.widget.TextView;
public class MainActivity extends Activity {
           TextView
name ;
           TextView
phone;
           TextView
email;
           TextView
street;
           TextView
place;
          
public static final String MyPREFERENCES = "MyPrefs" ;
          
public static final String Name = "nameKey";
          
public static final String Phone = "phoneKey";
          
public static final String Email = "emailKey";
          
public static final String Street = "streetKey";
          
public static final String Place = "placeKey";
           SharedPreferences
sharedpreferences;
           @Override
          
protected void onCreate(Bundle savedInstanceState) {
                     
super.onCreate(savedInstanceState);
                      setContentView(R.layout.activity_main);
                     
name = (TextView) findViewById(R.id.editTextName);
                     
phone = (TextView) findViewById(R.id.editTextPhone);
                     
email = (TextView) findViewById(R.id.editTextStreet);
                     
street = (TextView) findViewById(R.id.editTextEmail);
                     
place = (TextView) findViewById(R.id.editTextCity);
                     
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
                     
if (sharedpreferences.contains(Name))
                      {
                                
name.setText(sharedpreferences.getString(Name, ""));
                              }
                     
if (sharedpreferences.contains(Phone))
                      {
                                
phone.setText(sharedpreferences.getString(Phone, ‎‎""));
                              }
                     
if (sharedpreferences.contains(Email))
                      {
                                
email.setText(sharedpreferences.getString(Email, ‎‎""));
                              }
                     
if (sharedpreferences.contains(Street))
                      {
                                
street.setText(sharedpreferences.getString(Street, ‎‎""));
                              }
                     
if (sharedpreferences.contains(Place))
                      {
                                
place.setText(sharedpreferences.getString(Place,""));

                            }
                   }
                  
public void run(View view){
                      String n  =
name.getText().toString();
                      String ph  =
phone.getText().toString();
                      String e  =
email.getText().toString();
                      String s  =
street.getText().toString();
                      String p  =
place.getText().toString();
                      Editor editor =
sharedpreferences.edit();
                      editor.putString(
Name, n);
                      editor.putString(
Phone, ph);
                      editor.putString(
Email, e);
                      editor.putString(
Street, s);
                      editor.putString(
Place, p);
                      editor.commit();
                   }
                   @Override
          
public boolean onCreateOptionsMenu(Menu menu) {
                     
// Inflate the menu; this adds items to the action bar if it is present.
               
      getMenuInflater().inflate(R.menu.main, menu);
                     
return true;
                   }
                }

در زیر محتوای فایل فعالیت اصلی تغییر یافته res/layout/activiy_main.xml را می بینید.

<scrollview xmlns:android="http://schemas.android.com/apk/res/android"

             xmlns:tools="http://schemas.android.com/tools"

             android:id="@+id/scrollView1"

             android:layout_width="match_parent"

             android:layout_height="wrap_content"

             tools:context=".DisplayContact">

   

 

    <relativelayout android:layout_width="match_parent"

                      android:layout_height="370dp"

                      android:paddingbottom="@dimen/activity_vertical_margin"

                      android:paddingleft="@dimen/activity_horizontal_margin"

                      android:paddingright="@dimen/activity_horizontal_margin"

                      android:paddingtop="@dimen/activity_vertical_margin"

                      >

       

 

           <edittext android:id="@+id/editTextName"

                       android:layout_width="wrap_content"

                       android:layout_height="wrap_content"

                       android:layout_alignparentleft="true"

                       android:layout_margintop="5dp"

                       android:layout_marginleft="82dp"

                       android:ems="10"

                       android:inputtype="text">

           

 

               </EditText>

 

               <edittext android:id="@+id/editTextEmail"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignleft="@+id/editTextStreet"

                           android:layout_below="@+id/editTextStreet"

                           android:layout_margintop="22dp"

                           android:ems="10"

                           android:inputtype="textEmailAddress" />

 

               <textview android:id="@+id/textView1"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextName"

                           android:layout_alignparentleft="true"

                           android:text="@string/name"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <button android:id="@+id/button1"

                         android:layout_width="wrap_content"

                         android:layout_height="wrap_content"

                         android:layout_alignleft="@+id/editTextCity"

                         android:layout_alignparentbottom="true"

                         android:layout_marginbottom="28dp"

                         android:onclick="run"

                         android:text="@string/save" />

 

               <textview android:id="@+id/textView2"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextEmail"

                           android:layout_alignleft="@+id/textView1"

                           android:text="@string/email"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <textview android:id="@+id/textView5"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbottom="@+id/editTextPhone"

                           android:layout_alignleft="@+id/textView1"

                           android:text="@string/phone"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <textview android:id="@+id/textView4"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_above="@+id/editTextEmail"

                           android:layout_alignleft="@+id/textView5"

                           android:text="@string/street"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <edittext android:id="@+id/editTextCity"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignright="@+id/editTextName"

                           android:layout_below="@+id/editTextEmail"

                           android:layout_margintop="30dp"

                           android:ems="10"

                           android:inputtype="text" />

 

               <textview android:id="@+id/textView3"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignbaseline="@+id/editTextCity"

                           android:layout_alignbottom="@+id/editTextCity"

                           android:layout_alignparentleft="true"

                           android:layout_toleftof="@+id/editTextEmail"

                           android:text="@string/country"

                           android:textappearance="?android:attr/textAppearanceMedium" />

 

               <edittext android:id="@+id/editTextStreet"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:layout_alignleft="@+id/editTextName"

                           android:layout_below="@+id/editTextPhone"

                           android:ems="10"

                           android:inputtype="text">

               

 

                      <requestfocus />

                   </EditText>

 

                   <edittext android:id="@+id/editTextPhone"

                               android:layout_width="wrap_content"

                               android:layout_height="wrap_content"

                               android:layout_alignleft="@+id/editTextStreet"

                               android:layout_below="@+id/editTextName"

                               android:ems="10"

                               android:inputtype="phone|text" />

 

                   </RelativeLayout>

           

</scrollview> 

در زیر محتوای فایل فعالیت اصلی تغییر یافته res/values/strings.xml را می بینید.

<?xml version="1.0" encoding="utf-8" ?>

<resources>

   

       <string name="app_name">SharedPreferences</string>

       <string name="action_settings">Settings</string>

       <string name="hello_world">Hello world!</string>

 

       <string name="name">Name</string>

       <string name="phone">Phone</string>

       <string name="email">Email</string>

       <string name="street">Street</string>

       <string name="country">City/State/Zip</string>

 

       <string name="save">Save Contact</string>

   

</resources>

Following is the content default file AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8" ?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

           package="com.example.sharedpreferences"

           android:versioncode="1"

           android:versionname="1.0">

   

       <uses-sdk android:minsdkversion="8"

                  android:targetsdkversion="17" />

 

       <application android:allowbackup="true"

                     android:icon="@drawable/ic_launcher"

                     android:label="@string/app_name"

                     android:theme="@style/AppTheme">

       

              <activity android:name="com.example.sharedpreferences.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>

 اجازه بدهید برنامه ی  SharedPreferences شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run  از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

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

اکنون در فیلد متن وارد کنید، مثلا من چند اسم و اطلاعات تصادفی نوشتم، پس از آن روی save کلیک کنید.

وقتی روی دکمه ی save فشار می دهید، اطلاعات در shared preferences ذخیره شده. پس از آن دکمه ی back را زده و از برنامه خارج شوید. حالا آن را دوباره باز کنید. تمام متنی را که ذخیره کرده بودید در برنامه خواهید دید.

1394/07/27 5282 1809
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...