アプリプロジェクトのstrings.xml(res \ values内)で文字列fooを参照するには、次のように簡単に使用できます。
getString(R.string.foo)
getStringはContextのメソッドです。
Androidライブラリのstrings.xmlに文字列fooがあるとします。ライブラリのメソッドでどのように使用できますか?
編集:getString()を使用できるように、コンテキストの参照をライブラリメソッドに渡すことが提案されています。これはアプリのプロジェクトのコンテキストであるため、次のように説明できる潜在的な競合があります。
仮定:ライブラリに、値が「libraryfoo」の文字列fooがあります。アプリプロジェクトには、値が「appfoo」の文字列fooがあります
次のコード
Log.d("Debug", "App foo ID: " + R.string.foo);
Log.d("Debug", "App: foo value: " + getString(R.string.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の競合、つまり誤った文字列値を示しています。