Session در برنامه نویسی اندروید
Session در برنامه نویسی اندروید
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد Session در برنامه نویسی اندروید صحبت خواهیم کرد.
Session هنگامی که می خواهید داده های کاربر را در خارج از برنامه خود ذخیره کنید به شما کمک می کند، بنابراین وقتی دفعه بعد کاربر از برنامه شما استفاده می کند، می توانید به راحتی جزئیات اطلاعات او را ارائه بدهید و مطابق با آن عمل کنید.
Session در برنامه نویسی اندروید به طرق مختلف قابل انجام است.
اما ساده ترین و بهترین راه برای انجام این کار از طریق Shared Preferences است.
Shared Preferences
Shared Preferences به شما امکان می دهد داده ها را به صورت زوج کلید، مقدار ذخیره و بازیابی کنید.
برای استفاده از Shared Preferences، شما باید یک متد ()getSharedPreferences را فراخوانی کنید که یک نمونه SharedPreference را به پرونده ای که حاوی مقادیر تنظیمات است نشان می دهد.
1 |
SharedPreferences sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); |
با استفاده از کلاس SharedPreferences.Editor می توانید چیزی را در Shared Preferences ذخیره کنید.
شما متد ویرایش SharedPreference را فراخوانی خواهید کرد و آن را در یک شی editor دریافت خواهید کرد.
1 2 3 |
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 ذخیره می کند
مدیریت Session از طریق Shared Preferences
برای انجام مدیریت Session از طریق Shared Preferences، باید مقادیر یا داده های ذخیره شده در Shared Preferences را در روش onResume بررسی کنیم.
اگر داده ای نداشته باشیم، همانطور که تازه نصب شده است، برنامه را از ابتدا شروع می کنیم.
اما اگر داده ها را بدست آوریم، از محلی که کاربر آن را ترک کرده شروع می کنیم.
مثال
مثال زیر استفاده از مدیریت Session را نشان می دهد. این برنامه به شما امکان می دهد برای اولین بار وارد سیستم شوید. و سپس هنگامی که بدون ورود به سیستم از برنامه خارج می شوید، اگر دوباره برنامه را شروع کنید ، به همان مکان بازگردانده می شوید. اما اگر از برنامه خارج شوید، به صفحه اصلی ورود باز خواهید گشت.
برای آزمایش این مثال، باید این مورد را روی دستگاه واقعی یا شبیه ساز اجرا کنید.
شرح مراحل
1- برای ایجاد یک برنامه اندروید تحت یک پکیج com.example.sairamkrishna.myapplication از android studio IDE استفاده خواهید کرد.
2- برای افزودن کد پیشرفت برای افزودن کد Session، فایل src / MainActivity.java را تغییر دهید.
3- New Activity ایجاد کنید و نام آن را second.java بگذارید. برای افزودن کد پیشرفت برای افزودن کد Session، این فایل را ویرایش کنید.
4- برای اضافه کردن کد XML مربوطه ، فایل res / layout / activity_main.xml را تغییر دهید.
5- برای اضافه کردن کد XML مربوطه ، فایل res / layout / second_main.xml را تغییر دهید.
7- برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.
در اینجا محتوای MainActivity.java است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package com.example.sairamkrishna.myapplication; import android.content.Context; import android.content.Intent; 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; public class MainActivity extends AppCompatActivity { EditText ed1,ed2,ed3; Button b1; Intent in; 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(); in = new Intent(MainActivity.this,second_main.class); startActivity(in); } }); } } |
در اینجا محتوای second_main.java است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package com.example.sairamkrishna.myapplication; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.view.View; import android.widget.Button; public class second_main extends Activity { Button bu=null; Button bu2=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second_main); bu=(Button)findViewById(R.id.button2); bu2=(Button)findViewById(R.id.button3); } public void logout(View view){ SharedPreferences sharedpreferences = getSharedPreferences(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedpreferences.edit(); editor.clear(); editor.commit(); } public void close(View view){ finish(); } } |
در اینجا محتوای activity_main.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?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="login" android:id="@+id/button" android:layout_below="@+id/editText3" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" /> </RelativeLayout> |
در اینجا محتوای second_main.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Logout" android:onClick="logout" android:id="@+id/button2" android:layout_gravity="center_horizontal" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="191dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Close" android:onClick="close" android:id="@+id/button3" android:layout_below="@+id/button2" android:layout_centerHorizontal="true" android:layout_marginTop="69dp" /> </RelativeLayout> |
در اینجا محتوای Strings.xml وجود دارد.
1 2 3 |
<resources> <string name="app_name">My Application</string> </resources> |
در اینجا محتوای AndroidManifest.xml است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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> <activity android:name=".second"></activity> </application> </manifest> |
بیایید برنامه خود را اجرا کنیم! من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.
نام کاربری و رمز عبور خود را وارد کنید (هر آنچه را دوست دارید تایپ کنید، اما آنچه را تایپ می کنید به خاطر بسپارید) و بر روی دکمه ورود کلیک کنید. در تصویر زیر نشان داده شده است:
به محض کلیک بر روی دکمه ورود به سیستم، به این صفحه خوش آمدید آورده می شوید. اکنون اطلاعات ورود به سیستم شما در shared preferences ذخیره می شود.
اکنون بر روی دکمه Exit without logout کلیک کنید و دوباره به صفحه اصلی باز خواهید گشت و در فایل preference مانند تصویر زیر قرار داده می شود
اگر پرونده myPref.xml را به عنوان فایل note باز کنید، به شرح زیر خواهد بود
اگر روی دکمه logout کلیک کنید، مقادیر preference را پاک می کند. و اگر مقادیر مختلفی را به عنوان ورودی وارد کنید، آن مقادیر را به عنوان اولویت در XML وارد می کند.
لیست جلسات قبل آموزش برنامه نویسی اندروید
-
- نگاهی کلی به برنامه نویسی اندروید
- تنظیمات محیط در برنامه نویسی اندروید
- معماری برنامه نویسی اندروید
- اجزای برنامه در برنامه نویسی اندروید
- Hello World در برنامه نویسی اندروید
- سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
- فعالیت در برنامه نویسی اندروید
- سرویس در برنامه نویسی اندروید
- گیرنده های پخش در برنامه نویسی اندروید
- ارائه دهنده محتوا در برنامه نویسی اندروید
- قطعات در برنامه نویسی اندروید
- Intent و فیلتر در برنامه نویسی اندروید
- طرح بندی رابط کاربری در برنامه نویسی اندروید
- کنترل های رابط کاربری در برنامه نویسی اندروید
- مدیریت رویدادها در برنامه نویسی اندروید
- استایل و تم ها در برنامه نویسی اندروید
- اجزای سفارشی در برنامه نویسی اندروید
- کشیدن و رها کردن در برنامه نویسی اندروید
- نوتیفیکیشن ها در برنامه نویسی اندروید
- سرویس های مبتنی بر مکان در برنامه نویسی اندروید
- ارسال ایمیل در برنامه نویسی اندروید
- ارسال پیامک در برنامه نویسی اندروید
- تماس های تلفنی در برنامه نویسی اندروید
- انتشار برنامه اندروید
- آموزش Alert Dialog در برنامه نویسی اندروید
- انیمیشن در برنامه نویسی اندروید
- ضبط صدا در برنامه نویسی اندروید
- مدیریت صدا در برنامه نویسی اندروید
- آموزش Auto Complete در برنامه نویسی اندروید
- بهترین شیوه ها در برنامه نویسی اندروید
- بلوتوث در برنامه نویسی اندروید
- استفاده از دوربین در برنامه نویسی اندروید
- کلیپ بورد در برنامه نویسی اندروید
- فونت سفارشی در برنامه نویسی اندروید
- پشتیبان گیری از داده ها در برنامه نویسی اندروید
- ابزارهای توسعه دهنده در برنامه نویسی اندروید
- آموزش شبیه ساز در برنامه نویسی اندروید
- اتصال به فیس بوک در برنامه نویسی اندروید
- حرکات لمسی در برنامه نویسی اندروید
- آموزش گوگل مپ در برنامه نویسی اندروید
- افکت های تصویر در برنامه نویسی اندروید
- Image Switcher در برنامه نویسی اندروید
- حافظه داخلی در برنامه نویسی اندروید
- آموزش کار با JetPlayer در برنامه نویسی اندروید
- JSON Parser در برنامه نویسی اندروید
- ارتباط با LinkedIn در برنامه نویسی اندروید
- نوار پیشرفت Spinner در برنامه نویسی اندروید
- بومی سازی در برنامه نویسی اندروید
- صفحه Login در برنامه نویسی اندروید
- MediaPlayer در برنامه نویسی اندروید
- Multitouch در برنامه نویسی اندروید
- Navigation در برنامه نویسی اندروید
- اتصال به اینترنت در برنامه نویسی اندروید
- NFC در برنامه نویسی اندروید
- PHP و MYSQL در برنامه نویسی اندروید
- Progress Circle دربرنامه نویسی اندروید
- Progress Bar در برنامه نویسی اندروید
- Push Notification در برنامه نویسی اندروید
- RenderScript در برنامه نویسی اندروید
- RSS Reader در برنامه نویسی اندروید
- Screen cast در برنامه نویسی اندروید
- SDK Manager در برنامه نویسی اندروید
- سنسورها در برنامه نویسی اندروید
دیدگاه شما