رفتن به مطلب

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


امین شاهدی

ارسال‌های توصیه شده

با سلام ، خب ما توی b4a برای ذخیره اطلاعات همیشه از File.WriteString استفاده میکردیم که روش اصلی به این صورت نیست ولی کار ما رو راه مینداخت و یه مشکلی که داره اینه که اطلاعات فقط به صورت String انجام میشد و برای فراخوانی اون هم باید حتما فایل رو قبلش چک میکردیم که وجود داشته باشه و کد نویسی طولانی میشد ، 
 
خب توی این روش اطلاعات ما توی فایل xml توی دیتای خود برنامه ذخیره میشه :
 
روش استفاده از کتابخونه هم راحته ، برای ذخیره ابتدا یه اسم بهش میدیم و بعد هم مقداری که میخوایم ذخیره شه که مقدار با اون اسم ذخیره میشه و بعدا هم دوباره با همون اسم فراخوانیش میکنیم ، مثال برای ذخیره :

Dim ASP As AriaSharedPreferences

ASP.SaveBoolean("firsttime",True)
ASP.SaveFloat("meqdarefloat",256.567)
ASP.Savelong("shomare",21474183646)
ASP.SaveString("matn1"," matn be surate string  !@9i2 0ma0sdj ")
ASP.SaveInt("textsize",21212)

 
و برای فراخوانی هم از ما یه اسم میخواد و یه مقدار دیفالت که در صورتی مقداری با اون اسم ذخیره نشده باشه اون مقدار دیفالت رو برمیگردونه : مثال :

ASP.GetString("matne1","matni zakhire nashode")
ASP.GetInt("textsize",0)

توی این مثال اگه متنی به صورت String با اسم matne1 ذخیره شده باشه که مقداره ذخیره شده رو برمیگردونه در غیر این صورت مقدار دیفالتی که بهش داده بودین رو برمیگردونه ،
توی خط دوم هم به همین صورت ، اگه عددی با اسم textsize ذخیره شده بود که اون رو بر میگردونه در غیر این صورت عدد 0 رو برمیگردونه .
 
برای پاک کردن یه مقدار هم از طریق متد زیر اسم رو بهش میدیم و اون مقدار پاک میشه (نوع اون مقدار فرقی نداره و فقط از طریق اسم اون مقدار پاک میشه) :

ASP.Delete("matn1")

 دانلود کتابخانه v1

 

_________________________________

 

 

نسخه 2 کتابخانه   HZ_New_Icon.gif

 

تغییرات :

-کتابخانه باید حتما initialize شه

-مشکل getInt برطرف شد

-امکان گوش دادن به تغیرات مقادیر با متد : RegisterPreferenceChangeListener

 

 

AriaSharedPreferences V2.0.zip

 

نمونه کد : 

Sub Globals
	Dim ASP As AriaSharedPreferences
End Sub

Sub Activity_Create(FirstTime As Boolean)
		
		ASP.Initialize("asp")
		ASP.RegisterPreferenceChangeListener

End Sub

Sub Button1_Click
	ASP.SaveString("site","answerCenter.ir")
End Sub

Sub asp_OnPreferenceChange(Preferences As AriaSharedPreferences,Key As String)
	Log(Key & " Changed")
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	ASP.UnRegisterPreferenceChangeListener
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...

سلام

کتابخانه ی خوب و کاربردی هستش

یه سوال داشتم، چرا مقدار ویو هارو ذخیره نمیکنه؟ مثلا

(Asp.savestring("im1",imageview1.visble)

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

مثلا

("Asp.savestring("im1","true

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کتابخانه ی خوب و کاربردی هستش

یه سوال داشتم، چرا مقدار ویو هارو ذخیره نمیکنه؟ مثلا

(Asp.savestring("im1",imageview1.visble)

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

مثلا

("Asp.savestring("im1","true

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

savestring برای string هست باید از SaveBoolean استفاده کنی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای درون پرداخت خوبه استفاده کنیم از این روش؟

سلام

اره هموطن، روش استاندارد هستش و ایمن تر هست نسبت به فایل txt

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

دستتون درد نکنه خیلی مفیده.فقط یک سوال ؟

 

چطور میشه مقدار فونت را ذخیره کرد و فراخوانیش کرد .من هرکاری کردم نتونستم.

با string تست کردم نشد.

 

با ASP.SaveString("font",font1)

ذخیره کردم.

ولی موقع فراخوانی به مشکل برمیخورم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 هفته بعد...

دستتون درد نکنه خیلی مفیده.فقط یک سوال ؟

 

چطور میشه مقدار فونت را ذخیره کرد و فراخوانیش کرد .من هرکاری کردم نتونستم.

با string تست کردم نشد.

 

با ASP.SaveString("font",font1)

ذخیره کردم.

ولی موقع فراخوانی به مشکل برمیخورم

 

دوست عزیز فونت یه TypeFace ه ، نمیتونین که به صورت string ذخیره کنیدش ! میتونین اسم اون رو ذخیره کنید و ازش استفاده کنید

Dim ASP As AriaSharedPreferences

ASP.SaveString("fontname","font1")
'ya
ASP.SaveString("fontname","font1")
'ya
ASP.SaveString("fontname","font1")


Dim lbl As Label
lbl.Typeface = Typeface.LoadFromAssets(ASP.GetString("fontname","font1")) ' dar surate save nabudan meqdar font1 estefade mishe

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...

استاد شاهدی عزیز

تو این کتابخونه یه اشکال ریز وجود داره تو متد getint مقدار دیفالت رو یادتون رفته بزارین و همیشه یه عدد واسه دیفالته عدد 123456-

 لطفا اصلاح کنید عزیز

لینک ارسال
به اشتراک گذاری در سایت های دیگر

استاد شاهدی عزیز

تو این کتابخونه یه اشکال ریز وجود داره تو متد getint مقدار دیفالت رو یادتون رفته بزارین و همیشه یه عدد واسه دیفالته عدد 123456-

عکسشو پیوست میکنم لطفا اصلاح کنید عزیز

تا آقای شاهدی بیان و مشکل رو بر طرف بکنن فعلاً از این روش استفاده کنید:

Dim aria As AriaSharedPreferences
Dim coin As Int
coin = aria.GetInt("coin", 0)
If coin = -123456 Then
	coin = 0
End If

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 هفته بعد...

کتابخانه اپدیت شد ، مشکل getInt برطرف شد + یک امکان جدید (پست اول رو ببینید)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...

یه سوال! میشه با متدهای این کتابخونه بصورت شرطی کار کرد؟

مثلا بگیم که اگر بولین ذخیره شده مساوی true بود فلان کار انجام بشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 30 دقیقه قبل، Milad-Mohammadi گفته است :

یه سوال! میشه با متدهای این کتابخونه بصورت شرطی کار کرد؟

مثلا بگیم که اگر بولین ذخیره شده مساوی true بود فلان کار انجام بشه

خب داداشم کار این کتابخونه همینه دیگه :|

مثلا 

if sp.GetInt("integer1",12345) = 123 then
'|||||||||||
else if sp.GetInt("integer1",12345) = 12 then
'||||||||||
else sp.GetInt("integer1",12345) = 12345 then
'||||||||||
end if

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

معلومه که میشه :-؟ 

If ariasp.GetBoolean("felan",False) Then
	'....
	Else
	'....	
End If

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...
  • 3 هفته بعد...

ایول داری داداش.دمت گرم.

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

لطفا تکه کدشو بذارید.

ممنوووون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و خسته نباشید...

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 15 دقیقه قبل، akbar-single گفته است :

سلام و خسته نباشید...

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

درود

خب میتونید با Boolean کار کنید

ASP.SaveBoolean("firsttime",True)

زمانی که چک باکس چک خورده True و در غیر این صورت False ذخیره کنید...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 دقیقه قبل، akbar-single گفته است :

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

سلامت باشید

عزیزم تکه کدش همینه که دادم...

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

if checkbox1.checked = true then

asp.saveboolean("check",true)

else

asp.saveboolean("check",false)

end if

 

کد رو همینجوری و توی محیط ادیتور خود انجمن نوشتم....

اگر دستور شرطی بلد نیستید توی بخش آموزش های مقدماتی برای مبتدی ها آموزشش هست... پیدا کنید و خودتون رو تقویت کنید...

از گام 2 نمیتونید بپرسید گام 11 ! مطمئن باشید میخورید زمین.

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، مهدی ایزدی گفته است :

سلامت باشید

عزیزم تکه کدش همینه که دادم...

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


if checkbox1.checked = true then

asp.saveboolean("check",true)

else

asp.saveboolean("check",false)

end if

 

کد رو همینجوری و توی محیط ادیتور خود انجمن نوشتم....

اگر دستور شرطی بلد نیستید توی بخش آموزش های مقدماتی برای مبتدی ها آموزشش هست... پیدا کنید و خودتون رو تقویت کنید...

از گام 2 نمیتونید بپرسید گام 11 ! مطمئن باشید میخورید زمین.

موفق باشید

تیکش هر دفعه false هست.تیکو میزنم و خارج میشم..دوباره ک میرم تو برنامه باز تیک نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیزم این واسه ذخیره کردن هستش...

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

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

مشکلتوت حل  میشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...