Android FAQ: How can I create a static array of strings in Android?
It turns out that it’s easy to create and use a static array of strings in Android. Of course you can do this in Java code, as I describe in my Java string array tutorial, but for Android I’m talking about doing this in XML.
In short, this is how you define a static string array in an Android XML file:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="my_books">
<item>Scala Cookbook</item>
<item>Play Framework Recipes</item>
<item>How I Sold My Business: A Personal Diary</item>
<item>A Survival Guide for New Consultants</item>
</string-array>
</resources>
Then inside an Activity, Fragment, or other Java class, you can create a string array in Java from that XML like this:
Resources res = getResources(); String[] myBooks = res.getStringArray(R.array.my_books);
Where to put the static String array
For small apps you can put your string array in the usual res/values/strings.xml file, but in larger apps your static string array doesn’t have to be declared in the strings.xml file; you can put your array in any XML file in the res/values directory, as long as it has the format shown.
Another example: Using a static string array in a ListPreference
I was just working through an Android “Preferences” example, and saw where the author defined two static string arrays in a file named res/values/array.xml, like this:
<resources>
<string-array name="listArray">
<item>Headings</item>
<item>Headings and Details</item>
<item>All Data</item>
</string-array>
<string-array name="listValues">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
Instead of accessing his string arrays in Java code, he access them in XML in a ListPreference, like this:
<ListPreference android:title="Download Details"
android:summary="Select the kind of data that you would like to download"
android:key="downloadType"
android:defaultValue="1"
android:entries="@array/listArray"
android:entryValues="@array/listValues" />
That’s another cool use of a static string array in Android, and it comes from this Android preferences tutorial.
Summary
In summary, if you needed to see how to define a static string array in XML in an Android app, I hope this example is helpful.

