michael
michael

Reputation: 123

accessing string from string array in layout file of android studio

I am using Android studio and have an array in my string.xml file as:

<string-array name="my_array">
    <item>text1</item>
    <item>text2</item>
    <item>text3</item>
</string-array>

I know how to access the array (and get the 1st item) in my MainActivity.java file:

myButton.setText(getResources().getStringArray(R.array.my_array)[0]);

My question: Is there anyway to set the text directly in the activity_main.xml file? I tried:

<Button
    android:id="@+id/myButton"
    android:text="@array/my_array[0]"
    ... />

but that causes an error. Without the "[0]" it displays the 1st value (text1), but maybe that is just because of the button's size and it's not showing the rest - I can't get it to display other items (e.g., text2).

Is it possible to access one value of the array directly in the layout file? Thanks.

Upvotes: 2

Views: 482

Answers (1)

William T. Mallard
William T. Mallard

Reputation: 1660

I found a good answer here: https://stackoverflow.com/a/4161645/933969

Basically you create named strings first (and use those where you would want mystrings[x]) and then create your array using references to those named strings:

<string name="earth">Earth</string>
<string name="moon">Moon</string>

<string-array name="system">
    <item>@string/earth</item>
    <item>@string/moon</item>
</string-array>

Upvotes: 2

Related Questions