2012-05-11 24 views
1

我有一个应用程序3 activites。在我的开场活动(主要活动)中,我使用static关键字为我的应用程序设置了字体,以便我可以重复使用它。另外两个活动从主要活动中获得他们的字体。这提出了一个问题 - 当用户说让活动编号为3,然后返回到主页(桌面)时,不关闭应用程序,然后重新打开应用程序 - 他将得到默认字体,而不是我自定义的字体。从其他活动设置TypeFace - 在每个活动中调用方法或创建新实例?

这意味着我将不得不用来初始化每个活动的字体,以避免这种情况。我的问题是,这样做有什么权利?我应该在每个活动中初始化它们吗?我应该将字体放在方法中的主要活动中,并从不同的活动中调用该方法?我在这里失踪的任何其他方式?

回答

1

如果您要为其设置自定义字体的不同类型视图的数量很少(例如只有TextView),请按照Custom Fonts in Android Widgets了解如何使用XML来完成此操作,以便您不必在每一项活动。

如果您确实想要在整个活动中共享TypeFace,推荐的方法是创建一个Activity的子类,其中包含TypeFace作为成员变量。你将不得不使用这个类作为你所有活动的父项。

+0

作为“实施”还是“扩展”?由于我扩展了其他类,如listactivity,我猜我还必须将其子类化呢? – Yosi199

+0

如果您的所有活动都属于同一类型,则可以扩展该类型以创建您的超类。但是,如果它们不同,这将不起作用,并且您可以依赖于具有静态get方法的实用程序类,该方法将返回您的TypeFace实例(一种Singeton模式) – Rajesh

+0

谢谢你,那正是我在想什么时候写作“应该将字体放在我的主要活动中,并从不同的活动中调用该方法?” – Yosi199