PDA

View Full Version : یه راهنمایی برای ذخیره تنظیمات بدون ریستات کردن برنامه



android69
پنج شنبه 26 تیر 1393, 22:19 عصر
من تنظیمات فونت و سایز فونت هارو به صورت داینامیک تغییر میدم اما حتما باید برنامه رو ریستارت کنم تا تنظیمات اعمال شه چطوری بدون ریساترت کردت انجام بدم؟؟ممنون میشم کمک کنید.

poorman
پنج شنبه 26 تیر 1393, 23:47 عصر
سلام

راهش اینه همونجا که تنظیمات رو ذخیره میکنین، تغییرات رو هم اعمال کنید روی تمام ویوهاتون

یعنی طرف مثلا دکمه ذخیره رو که زد همزمان اندازه و فونت دکمه های موجود در اکتیویتی تغییر کنن

اگر از قبل اکتیویتی دیگه ای باز هست و میخواین تنظیمات روی اونا هم اعمال بشه، توی متد onRestart اکتیویتی، تنظیمات رو بخونین و روی کنترل ها اعمال کنین

android69
جمعه 27 تیر 1393, 03:09 صبح
سلام

راهش اینه همونجا که تنظیمات رو ذخیره میکنین، تغییرات رو هم اعمال کنید روی تمام ویوهاتون

یعنی طرف مثلا دکمه ذخیره رو که زد همزمان اندازه و فونت دکمه های موجود در اکتیویتی تغییر کنن

اگر از قبل اکتیویتی دیگه ای باز هست و میخواین تنظیمات روی اونا هم اعمال بشه، توی متد onRestart اکتیویتی، تنظیمات رو بخونین و روی کنترل ها اعمال کنین
مرسی اما میخوام همون لحظه توی اکتیویتی جاری انجام شه متاسفامه نمیشه

poorman
جمعه 27 تیر 1393, 03:17 صبح
خب دیگه، مثلا الان کاربر فونت 12 رو انتخاب کرد و ذخیره کرد

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

توی متد onCreate چطوری اندازه و فونت رو ست میکنی شما؟ همین کار رو هم بعد از ذخیره کردن فونت و سایز انجام بده

moralschool
پنج شنبه 02 مرداد 1393, 12:03 عصر
میشه یه مثال ساده از تغییر فونت با استفاده از SharedPreferences بزنید

moralschool
پنج شنبه 02 مرداد 1393, 15:03 عصر
اینجا یه توضیحات و نمونه خوب بود
http://barnamenevis.org/showthread.php?442348
فقط یه مشکل داره اونم همین هست که وقتی تنظیمات رو اعمال و ذخیره میکنی و بر میگردی به اکتیویتی قبلی تنظیمات اعمال نشده و باید یه بار از صفحه خارج بشی و دوباره بیای تا تغییرات رو ببینی !
لطفا بگید چجوری میشه این مشکل رو حل کرد
تغییرات فونت و سایز در صفحه تنظیمات به شکل زیر انجام میشه هااااا !


save.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
SharedPreferences.Editor shpE = shp.edit();
shpE.putString("font", font);
shpE.putBoolean("chk", chb.isChecked());
shpE.putInt("size", size);
shpE.commit();
finish();

}
});