تغییر رنگ بک گراند تمام اکتیویتی ها با کلیک بر روی یک دکمه
سلام
میخواستم تو بخش تنظیمات برنامم چند تا دکمه ایجاد کنم
و با کلیک کردن روی هر کدام رنگ بک گراند همه اکتیویتی ها عوض بشه
بهتره از ذخیره سازی رنگ به صورت SharedPreferences اقدام کنید . و در اکتیویتی های مقصد اطلاعات رنگ رو خونده و رنگ رو اعمال کنید این سوال رو ببینید...
در صفحه تنظیمات مثلا سه تا دکمه داری به سه رنگ ابی ، زرد و سبز
و یک دکمه ذخیره تنظیمات ...
یک متغیر سراسری تعریف میکنی از نوع String مثلا با نام myColor
حالا روی هر رنگ که تاچ شد مثلا رنگ ابی اون رنگ رو توی متغیر بریز ..
mycolor="#0000ff"; //red-green-blue-alpha >> blue
یا اسم رنگ رو بذار بعدا داخل هر اکتویتی تبدیل به کد رنگ...
حالا روی کلیک دکمه ذخیره سازی اینو بنویس
SharedPreferences sp = getSharedPreferences("myapp", 0);
SharedPreferences.Editor spe = sp.edit();
spe.putString("color", mycolor);
spe.commit();
Toast.makeText(getBaseContext(), "با موفقیت ذخیره شد", Toast.LENGTH_SHORT).show();
حالا توی onresume یا oncreate هر اکتویتی برنامه ات این کد روبنویس (برای هر اکتویتی یه فایل xml ظاهر داری که شامل یک
نگه دارنده هس مثل linear layout براش یه id بذار و بیا توی اکتویتی اون و به کمک اون id یه شی ازش بساز تا بتونی رنگ عوض کنی)
مثلا من یه linearLayout دارم با نام lin1 و ی شی با همین نام ازش ساختم
حالا میگم:
SharedPreferences sp = getSharedPreferences("myapp", 0);
String giveColor = sp.getString("color", "#0000ff"); //نکته
lin1.setBackgroundColor(Color.parseColor(giveColoe));
به همین راحتی ...
نکته : ورودی دوم وقتی که نشه مقدار ذخیره شده رو خوند و یا مقداری وجود نداشته باشه میاد .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .