To reference string foo in strings.xml (in res\values) of an app project, one can simply use
getString(R.string.foo)
getString is a method of Context.
Suppose an Android library has a string foo in its strings.xml. How can it be used in a method of the library?
Edited: It has been suggested to pass a reference of Context to the library method so getString() can be used. Since it is a context of an app's project, there is potential conflict that can be illustrated as following:
Suppose: The library has a string foo with value = "library foo". An app project has a string foo with value = "app foo"
The following code
Log.d("Debug", "App foo ID: " + R.string.foo);
Log.d("Debug", "App: foo value: " + getString(R.string.foo));
generates:
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
In a library method, the following code
Log.d("Debug", "Library foo ID: " + R.string.foo);
Log.d("Debug", "Library foo value: " + context.getString(com.my.library.R.string.foo));
generates:
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
The above shows the ID conflict hence erroneous string value.