2011-08-04 10 views
2

私は自分自身が常に入力気づい:getResources()または独自の静的クラスを作成しますか?

someVar = getResources().getString(R.string.someString); 

私が解析し、建物やファイルの一貫性に滞在することを確実にするために、私は/ RES /値でタグ名を配置しているのですいくつかのXMLファイルを持っていますstrings.xmlファイル。同じハンドルは、いくつかの活動全体で使用され、他の人がそうこれらの変数(EXを収容する簡単なスーパークラスを作成していない一方で、これらの活動の一部はListActivityを拡張されています

public class thisClass extends thatClass 
{...} 

public class thatClass 
{ 
    package String someTag = "this"; 
    package String otherTag = "that"; 
} 

私はgetResourcesにこれらの呼び出しのすべてを引き受けます

​​

をして、このようなように、これらの変数を参照するために:代わりに私が静的EX一般的に使用される変数のこれらのタイプを格納することができ、Rタイプのファイルを作成することが有益である場合()かなり課税を得ることができると思っていた

serializer.startTag("", globalVars.XML_TAGS.someTag); 

の代わりに、入力のための

serializer.startTag("", getResources().getString(R.string.someTag)); 

ありがとう!

答えて

4

OKは、android.content.res.resourcesのソースコードや他のいくつかのクラスに見た後、getResources()を通じてリソースとなってリソースを使用すると、静的クラスに比べ高価なであることは明らかです。

実際に返されるResourcesのインスタンスは、静的コンテナではなく、2つのステートメント(文字列か描画可能か他の形式か)を実行してリソースを取得するオブジェクトです。それはあなたがあなたのリソースを外部役立ちます

  • :getResourcesを使用して、しかし

    ()はその利点ています。リソースのいずれかのタイプのために

  • 、デフォルトとロケール画面の深度/解像度に多分によっては複数の代替リソースを指定することができます...

staticコンテナが使用するよりも低コストの代替を提供するかもしれませんローカライゼーションの後の試みは比較的コストがかかります。

関連する問題