-1

Android アプリの開発では、多くの場合、定数値を res/values の下の XML リソースとして定義することが推奨されます。これにより、アプリのローカライズが容易になり、実行時にデバイス構成固有の値を使用できるようになり、コードが全体的にすっきりするなど、多くの利点が得られます。私の質問は、これを避けるべき場合はありますか、それはなぜですか?

たとえば、なぜ

<string name="base_url">http://api.mycompany.com/</string>

単にではなく

public static final String BASE_URL = "http://api.mycompany.com/";

?

4

1 に答える 1

1

文字列がローカライズされない場合は、おそらく定数を使用する方が簡単です。「ローカライズ」と「翻訳」は同じではないことに注意してください。たとえば、通貨や日付のフォーマット パターンは別の言語に翻訳されませんが、ローカライザーが特定のロケールに合わせて調整できるように、それらを res/values/ に配置する必要があります。

一方、インテント アクションなど、人間が読み取れる文字列を定数にしたい場合があります。例えば:

public static final String ACTION_START_DOWNLOAD = "com.example.android.ACTION_START_DOWNLOAD";

定数がいくつかの異なるピア クラスで使用されていることがわかっている場合は、それを別のピア クラスに配置します (むしろ C ヘッダー ファイルのように)。また、コントラクト クラスを使用して、コンテンツ プロバイダーで使用する定数を定義します。このように定数を分割すると、変更がはるかに簡単になります。

于 2013-07-08T22:21:33.403 に答える