I have many string arrays in my resource files, and I want to access them programmatically depending on user input.
int c = Getter.getCurrentNumber();
Strin
You can get the resource id like so
int c = Getter.getCurrentNumber();
String resource = "n_" + c;
int id = getResources().getIdentifier(resource, "array", "com.your.project");
Then just use that id
String[] info = getResources().getStringArray(id);
Have a look here for another example on getResources().getIdentifier()
.
If you want to get a resource by name (programmatically) and you are not sure how to address the resource by name (but you do know how to access it by R.), you can do this:
Log.d("", context.getResources().getResourceName(R.id.whichYouAlreadyKnow) );
(Note: R.id.whichYouAlreadyKnow can be R.string.* R.drawable.* etc...)
Now you know the exact Resource address name
int id = getResources().getIdentifier(resource_name_that_printed_above, null, null);
Cheers