2012-05-11 5 views
1

私は3つのアクティビティを持つアプリを持っています。私のオープニングアクティビティ(メインアクティビティ)では、スタティックキーワードを使ってアプリケーションのフォントを設定して再利用できるようにしました。他の2つのアクティビティは、主なアクティビティからフォントを取得します。これは、アプリケーションを終了せずにアプリケーションを終了してから、アプリケーションを再起動することなく、ユーザーが3番のアクティビティを呼び出して帰宅(デスクトップ)したときに、カスタムフォントではなくデフォルトのフォントを取得します。TypeFaceを他のアクティビティから設定する - メソッドを呼び出すか、各アクティビティで新しいインスタンスを作成するか?

これは、これを回避するために、各アクティビティでTypeFaceを初期化する必要があることを意味します。私の質問は、それを行う権利は何ですか?各アクティビティで初期化する必要がありますか?私は主なアクティビティの中にメソッドの中にフォントを入れて、そのメソッドをさまざまなアクティビティから呼び出す必要がありますか?他の方法で私はここで行方不明ですか?

答えて

1

カスタムフォントを設定したいさまざまな種類のビューの数が少ない場合(例:TextView)、Custom Fonts in Android Widgetsに従うことで、XMLで行うことができますすべての活動。

アクティビティ間でTypeFaceを共有したい場合は、をメンバー変数として含むActivityのサブクラスを作成することをお勧めします。このクラスをすべてのアクティビティの親として使用する必要があります。

+0

"実装"または "拡張"私はリストア性のような他のクラスも拡張しているので、サブクラス化する必要があると思います。 – Yosi199

+0

すべてのアクティビティのタイプが同じ場合、そのタイプを拡張してスーパークラスを作成できます。しかし、それらが異なる場合、これは動作しませんし、 'TypeFace'インスタンス(Singetonパターン)を返すstatic getメソッドを持つユーティリティクラスに頼ることができます – Rajesh

+0

私はいつ考えていたのですか?私の主なアクティビティの中にメソッドの中にフォントを置き、そのメソッドを別のアクティビティから呼び出すだけでよいのでしょうか? – Yosi199

関連する問題