آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ست کردن تنظیمات و ذخیره کردن آن

amir Alu  12 سال پیش  12 سال پیش
+3 0

سلام.

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

خوب اولین سوالم اینه، چطور از اکتیویتی که داخلش هستم بتونم به متد تغییر بک گراند بقیه ی اکتیویتی ها دسترسی داشته باشم؟؟

دوم سوال این که من داخل دیالوگ 10 تا عکس دارم. چطوری میشه با SharedPreferences این تنظیمات رو ذخیره کرد.. من با SharedPreferences میتونم متن یا یک مقدار عددی و بولین را ذخیره کنم ولی واسه تنظیمات چیزی به ذهنم نمیرسه

اگر کمکم کنید واقعا ممنون میشم

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
mohsen-jj  12 سال پیش
0 0

سلام .

برای تغییر پس زمینه همه ی اکتیویتی هات باید Background همه ی Layout هاشون رو تغییر بدی برای این کار می تونید از متود  زیر استفاده کنید  :

layout.setBackgroundResource( int  id)

خب برای ذخیره کردن عکسات داخل preference اول باید resource id اون پس زمینه ای  که داخل drawable ذخیره کردی رو بدست بیاری که یک عدد هست و اسمش رو drawableResourceId  میزاریم . حالا برای همه عکسات میتونی تعیین کنی که اگر انتخاب شدن  resource id  شون توی preference ذخیره بشه .

همه ی Layout هات هم باید متود setBackgroundResource رو براشون صدا بزنی البته با ورودی resource id که از preference میخونیش ( قبلا ذخیره ش کردی ) .

کد بدست آوردن drawableResourceID رو توی جواب بعدی میزارم .

0 0
این قسمت کد layout.setBackgroundResource( int id) چطور به همه اکتیویتی ها دسترسی پیدا میکنه. یعنی با همین کد تمام صفحه ها عکسشون عوض میشه؟ این قسمت کمی برام نا مفهوم هست (12 سال پیش)
0 0
نه تمام صفحه ها فقط با این کد عکسشون عوض نمی شه . باید هر Activity که داری داخلش Layout کلیش رو تعریف کنی و این متود رو براش صدا بزنی البته به جای int id از Preference عدد مربوط به resource ID عکس رو میزاری فکر نکنم به جز این راهی وجود داشته باشه . (12 سال پیش)
پاسخ به سوال 
mohsen-jj  12 سال پیش
0 0

توجه کنید که nameOfDrawable همون اسم عکست هست .

 int drawableResourceId = this.getResources().getIdentifier("nameOfDrawable", "drawable", this.getPackageName());

layout.setBackgroundResource(drawableResourceId);

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .