دوست عزیز واسه این کار روشهای زیادی هست .یکی از این روشها استفاده SharedPreferenced.. روش کار چه طور هست؟فرض کنید شما 4 تا فونت مختلف دارید توی یک اکتیویتی دیگه..مثلا توی تنظیمات برنامه..میخواید کاربر هر کدوم انتخاب کرد روی تکست ویوهای داخل برنامه انجام بشه...شما RadioGroup میسازید..اگر کاربر radio اول رو کلیک کرد عدد 1 ..اگر دومین رو کلیک کرد عدد 2و الی آخر....این عدد بعد از اینکه کاربر انتخاب کرد داخل یک SharedPreferenced ذخیره میکنید .مثلا با متد زیر.
کد پیاچپی:
public void Base_save_SharedPre(int number){
SharedPreferences pref = getSharedPreferences("PREF_NAME", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("num",number );
editor.commit();
}
حالا داخل اکتیویتی که میخواید فونتش عوض کنید متد زیر بنویسید.
کد پیاچپی:
private int load() {
SharedPreferences sharedPreferences = context.getSharedPreferences("myPrefs",
Context.MODE_PRIVATE);
return sharedPreferences.getInt("num", 0);
}
متد Load داخل oncreate صدا بزنید..این متد یه عدد برمیگردونه.. مثلا:
حالا کافیه روی این متغییر Switch بزنید ..مثلا اگر 1 بود .فونت اول اگر 2 بود فونت دوم....
کد پیاچپی:
TypeFace custom_font;
switch (num) {
case 1:
custom_font= Typeface.createFromAsset(getAssets(),
"fonts/font1.ttf");
break;
case 2:
custom_font= Typeface.createFromAsset(getAssets(),
"fonts/font2.ttf");
break;
case 3:
custom_font= Typeface.createFromAsset(getAssets(),
"fonts/font3.ttf");
break;
}
حالا روی تکست ویویی که میخواید اعمال کن متغییر custom_font رو...
کد پیاچپی:
my_textView.setTypeface(custom_font);
به این صورت میتونید که اینکار انجام بدید..سعی کردم رویه کار و به صورت کامل بهتون بگم.