独自のクラスを使用してTextViewをプロジェクト内のどこからでも使用できます。
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public MyTextView(Context context) {
super(context);
init(context);
}
private void init(Context context) {
Typeface tf =
Typeface.createFromAsset(context.getAssets(), getFontFromPreferences(context));
setTypeface(tf);
}
private String getFontFromPreferences(Context context) {
SharedPreferences preferences = context.getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
String fontString = preferences.getString("my_font_pref_key", "Default.tff");
return fontString;
}
}
設定ボタンで、SharedPreferencesの新しいフォントを設定します。
私はButtonでもこれを行う必要がありますか? – MERCURIUS
TextViewを使用して適切な背景を持つButtonを実装することもできます。したがって、「MyTextView」も同じように動作します。しかし、もしあなたがとにかくボタンを使用したいなら、それを拡張する必要があります。 –