は、一つは単にAndroidライブラリのstrings.xmlの文字列をコードで参照するにはどうすればよいですか?
getString(R.string.foo)
のgetStringは、コンテキストの方法で使用することができるアプリプロジェクトの(RES \値の)のstrings.xmlの文字列のfooを参照します。
Androidライブラリのstrings.xmlに文字列fooがあるとします。ライブラリのメソッドではどのように使用できますか?
編集: Contextのリファレンスをライブラリメソッドに渡して、getString()を使用することをお勧めします。
仮定: ライブラリの値は "library foo"の文字列fooです。このライブラリは、次のように説明されている可能性があります。 アプリプロジェクト値= "アプリFOO"
Log.d("Debug", "App foo ID: " + R.string.foo);
Log.d("Debug", "App: foo value: " + getString(R.string.foo));
が生成する次のコード列FOO有する:ライブラリ法において
03-22 05:53:55.590: D/Debug(16719): App foo ID: 2131230723
03-22 05:53:55.590: D/Debug(16719): App foo value: app foo
、次のコードを
Log.d("Debug", "Library foo ID: " + R.string.foo);
Log.d("Debug", "Library foo value: " + context.getString(com.my.library.R.string.foo));
生成:
03-22 05:55:03.680: D/Debug(16719): Library foo ID: 2131230723
03-22 05:55:03.680: D/Debug(16719): Library foo value: app foo
上記のIDは競合し、したがって誤った文字列値を示しています。
このメソッドにはコンテキスト参照がありません。getString()はどのように使用できますか? – Hong
唯一の方法は、コンテキストを使用することです。通常は、呼び出し元のアプリケーションからコンテキストを受け入れるようにメソッドを設定しています。 – DDRBoxman
あなたのメソッドに 'Context'パラメータを渡す必要があります。この型のパラメータをすでに持っているなら、 'View'は' getContext() 'メソッドを持っています。 – nicopico