0

私はアプリケーションを構築しており、次の領域でラベルを使用しています。

1. Component Names (TextView, Buttons etc)
2. Buttons in alert boxes
3. Parameters to AsyncTask
4. Key names in Intent extras
5. Log tags

ラベルを保存して使用するためのstrings.xmlファイルがあります。カテゴリ1で使用しています。他の人にとって最良の選択肢は何だと思いますか?

res/strings.xml または定数クラス?

4

1 に答える 1

1

私が通常行っていることをお勧めします。

ユーザーが画面上で読むもの、または XML レイアウトから参照されるものすべてについて、strings.xml を使用します。これには 1 と 2 が含まれると思います。ただし、AlertDialogues ではandroid.R.string.okorandroid.R.string.cancelなども使用できることを覚えておいてください。それは用途によって異なります。

また、プロジェクトの構成値または API キーについては、文字列、整数などを含む config.xml を使用できます。後でコードに飛び込むことなくこれらの値を簡単に変更できるようにするものです。

AsyncTask の場合、実行する作業はさまざまですが、通常はネットワーク、DB、またはディスク操作であり、private static final String URL_PT1 = "http://...";そのアドレス (または DB 列) を知ることにのみ関心があるため、クラス自体に etc を含めようとします。 、またはファイルプレフィックス)

キー名 (Intent 引数と Fragment 引数の両方) については、extra で適切に値を割り当てるクラスを使用private static final String KEY_VALUE = "renjith.Key.MyClassName.VALUE";して作成します。public static Bundle getIntentExtras(String value)これは、その 1 つのクラスだけがその KEY 値について知る必要があるためです。これらのパブリックをアクセス可能にする理由はなく、外部のクラスが間違っているとエラーが発生するだけです。

ログ (5) の場合は、すべてのクラスに a を作成しますprivate static final String TAG = "Renjith.ThisClassName";(フラグメントの場合は、TAG をトランザクションで使用できるように公開します)。そうすれば、LogCat Renjith.* でフィルターを作成でき、このログがどこから来ているのかを簡単に特定できます。

編集:

共有設定の場合、次のように異なります。

GlobalSharedPreferences の場合、Context とそのクラス内のすべてのキーを受け取る必要がある静的な set/get メソッドでそれらを処理する 1 つのクラスを作成しますprivate static

ローカルの共有設定 (1 つのクラスのみが保存/取得に関心がある) の場合、そのクラスと同じ名前の SharedPreferences ファイルと、private staticその 1 つのクラス内のすべてのキーを処理します。

繰り返しますが、同じ哲学で、これらの詳細について本当に知る必要があるクラスだけがそれらについて知り、直接メソッド呼び出しで残りのクラスに抽象化します。

于 2013-03-05T10:22:49.667 に答える