در برنامه نویسی اندروید، SharedPreferences برای ذخیره اطلاعات و تنظیمات برنامه، می تواند به کار رود، به گونه ای که اگر کاربر اطلاعاتی را وارد کرد یا گزینه هایی را انتخاب نمود، با خارج شدن وی از برنامه (بستن برنامه یا خاموش کردن گوشی)، آن اطلاعات و انتخاب ها، از دست نرود.

 در ادامه، یک برنامه اندروید می سازیم که در آن، کاربر، ((نام)) و ((سن)) خود را در برنامه وارد می کند و چنانچه برنامه را ببندد و دوباره وارد برنامه شود، گزینه های وارد شده توسط وی، همچنان در کادر ورود اطلاعات، نمایش داده می شود (اگر بخواهد می تواند آنها را تغییر دهد، ولی به هر حال، مجبور نیست دوباره آنها را وارد نماید).

 در برنامه eclipse ، ابتدا یک پروژه اندروید با نام Kelidestan.com_SharedPreferences می سازیم (نام package را برابر com.kelidestan.sharedpreferences انتخاب می کنیم. نام activity اصلی را برابر MainActivity انتخاب می کنیم و فایل xml متناظر آن را هم برابر activity_main قرار می دهیم).

 در زیرمجموعه فولدر res ، یک فولدر با نام xml می سازیم و سپس درون آن، یک فایل xml ، با نام prefs.xml می سازیم
 

 کدهای فایل prefs.xml را به صورت زیر می نویسیم :

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
     <EditTextPreference android:key="name" android:title="@string/name" android:summary="@string/name_summary"/>
     <EditTextPreference android:title="@string/age" android:key="age" android:summary="@string/age_summary"/>
     
</PreferenceScreen>

 که در آن، دو EditTextPreference تعریف کرده ایم. بنابراین، دو EditTextPreference خواهیم داشت که کاربر باید ((نام)) و ((سن)) خود را در آن وارد کند. با خروج کاربر از برنامه، مقادیر وارد شده توسط وی، از بین نمی رود و درون EditTextPreference ها، دوباره همان مقادیر، نمایش داده می شود.

 اگر در کدهای بالا دقت کنید، متوجه می شوید که به 4 رشته (string) ارجاع داده ایم (با نام های name و name_summary و age و age_summary) که همگی باید در فایل strings.xml تعریف شوند. بنابراین باید فایل strings.xml را باز کنیم :
 

 کدهای فایل strings.xml را به صورت زیر می نویسیم (تعریف 4 رشته ذکر شده) :

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

     <string name="app_name">Kelidestan.com_SharedPreferences</string>
     <string name="action_settings">Settings</string>
     <string name="hello_world">Hello world!</string>
     <string name="name">name</string>
     <string name="name_summary">Enter your name</string>
     <string name="age">age</string>
     <string name="age_summary">Enter your age</string>
     <string name="server">server</string>

</resources>

 یک کلاس (class) با نام Prefs.java می سازیم :
 

 پس از ساخت کلاس (class)، کدهای آن به صورت زیر می باشد :

package com.hy.sharedpreferences;

public class Prefs {

}

 کدهای آن را به صورت زیر تغییر می دهیم :

package com.hy.sharedpreferences;

import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.view.Menu;

public class Prefs extends PreferenceActivity {
         
         @Override
         protected void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 addPreferencesFromResource(R.xml.prefs);
                 // setContentView(R.layout.activity_main);
         }

}

 بنابراین از ویژگی های کلاس PreferenceActivity ، در این کلاس، استفاده خواهد شد (ساخت کلاس Prefs ، بر اساس توسعه دادن کلاس PreferenceActivity).

 اکنون، باید فایل AndroidManifest.xml را باز کنیم :
 

 کدهای فایل AndroidManifest.xml ، به صورت زیر می باشد :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.hy.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.hy.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>

 باید خط زیر را به کدها اضافه کنیم :

<activity android:name=".Prefs"></activity>

 بنابراین، در نهایت، کدهای فایل AndroidManifest.xml ، به صورت زیر خواهند بود :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.hy.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.kelidestan.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>
         <activity android:name=".Prefs"></activity>
     </application>

</manifest>

 خوب، تاکنون activity مربوط به SharedPreferences را با نام Pref (فایل Pref.java) ساختیم و تنظیمات مورد نظرمان را هم به آن اعمال نمودیم. اما اکنون باید گزینه ای در برنامه قرار بدهیم که توسط آن، کاربر وارد activity با نام Pref بشود. برای این منظور، باید یک دکمه (button) در activity اصلی برنامه بسازیم که کاربر با اشاره بر روی آن، وارد activity با نام Pref بشود.

 ابتدا فایل activity_main.xml را که برای نمایش activity اصلی برنامه اندروید به کار می رود، باز می کنیم
 


 

 مشاهده می کنید که به طور پیش فرض، دارای یک TextView می باشد. ابتدا TextView را حذف کرده و سپس یک Button در آن قرار می دهیم :
 

 بنابراین ، شکل زیر را خواهیم داشت :
 

 سپس در properties مربوط به Button ، باید ببینیم که id آن چیست (یا id دلخواه خود را تعریف کنیم)
 

 بنابراین id مربوط به Button ، برابر button1 می باشد (آن را بعدا نیاز داریم).

 اکنون باید به سراغ فایل MainActivity.java برویم، که همان فایل مربوط به activity اصلی برنامه اندروید ما می باشد
 

 در ابتدا، کدهای آن به صورت زیر می باشد :

package com.hy.sharedpreferences;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

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

         @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;
         }

}

 کدها را به صورت زیر تغییر می دهیم (افزودن Button برای ارسال کاربر به activity با نام Prefs) :

package com.hy.sharedpreferences;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

         @Override
         protected void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.activity_main);
                 
                 Button b = (Button) findViewById(R.id.button1);
         b.setOnClickListener(new OnClickListener() {
                 
                 @Override
                 public void onClick(View v) {
                         startActivity(new Intent(MainActivity.this, Prefs.class));
                 }
         });
         }

         @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;
         }

}

 برنامه اندروید آماده است و می توانید آن را به شیوه دلخواه خود، اجرا کنید و نتیجه را ببینید

How to create shadow in Android Buttons

create an Android notification with a longer text

ایجاد فاصله بین متن و لبه های TextView ، در برنامه نویسی اندروید

آموزش WebView در اندروید

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

تبدیل متغیر int به متغیر String ، در برنامه نویسی اندروید

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

activity ,         ,import ,، ,فایل ,android ,import android ,با نام ,صورت زیر ,به صورت ,را به ,bundle savedinstancestate {                 ,savedinstancestate {                 super ,{                 super oncreate ,oncreate savedinstancestate                 

مشخصات

آخرین ارسال ها

آخرین جستجو ها


طراحي و بهينه سازي سايت مطالب اینترنتی آموزش های همگانی newsirani مطالب اینترنتی پایدار وب gearvita bi30588 Jacquelyn's life مطالب اینترنتی