私はAndroidアプリを書いていますので、私はいつものように私のstrings.xml
にすべての文字列を持っており、Androidの公式ドキュメントごとに述べています。文字列を使用したAndroidの頭痛:アプリ内のすべての文字列を集中化するにはどうすればよいですか?
ここまでは問題ありませんが、Javaの「標準」クラスで文字列を使用する場合に問題が発生します。すなわち、Email.java
にこの文字列を言わせて:
public static final String EMAIL_NOT_VALID = "The email address provided is not valid.";
あなたは、私がstrings.xml
にこの文字列を配置して行うことができると言うことができます。
getResources().getString(R.string.invalid_email_message)
このアプローチの問題は、私が合格することを余儀なくされるということです私のアプリ内のすべての単一のJavaオブジェクトへのAndroid Contextは、テストに関してはこれが関係するすべての疑惑の問題を伴います。
したがって、コンテキストを渡さずにこれを行うことは可能ですか?または、別の文字列を持つ2つのファイル(strings.xml
とxyz.java
)が必要ですか?
I'veは)運なしでStackOverflowの上で時間事前に
おかげでこの質問への答えを探して。
あなたはコンテキストを提供すること(シングルトン)まで残し、これを抽象化し、文字列を取得するためにそれを呼び出すシングルトンを持ってもらえますか?シングルトンにコンテキストを公開させて、テスト/モックのために注入することもできます。 – npinti
@ankitaggarwal質問をお読みください。私はその解決策を望んでいないと述べた。 –
@npinti本当に興味深い。もう少し詳しく説明してください。 –