Android - retrieve string array from resources

52,039

Solution 1

for(int i = 0;i<menuArray.length; i++) 
{
    Button b = new Button(this);
    b.setText(menuArray[i]);
    ll.addView(b);
}

Delete the below statement

 try {
        x = count();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

and try to give layout height and width to all Layouts..

Solution 2

How to retrieve a string array from resources:

array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="my_string_array">
        <item>one</item>
        <item>two</item>
        <item>three</item>
    </string-array>

</resources>

Code

String[] stringArray = getResources().getStringArray(R.array.my_string_array);

(The OP already had their question answered but based on the question title, other people may come here looking for this answer.)

Share:
52,039
Yuen Tong
Author by

Yuen Tong

Updated on July 24, 2022

Comments

  • Yuen Tong
    Yuen Tong almost 2 years

    Below is the code that i made to retrieve the string array item:

    String[] menuArray;
    
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {       
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        ScrollView sv = new ScrollView(this);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        sv.addView(ll);
    
     // Create an ArrayAdapter that will contain all list items
        ArrayAdapter<String> adapter;
    
        menuArray = getResources().getStringArray(R.array.menu); 
    
    
        for(int i = 0; i < menuArray.length; i++) 
        {
            Button b = new Button(this);
            b.setText(menuArray[i]);
            ll.addView(b);
        }
    
        this.setContentView(sv);
     }
    

    This is the strings.xml file:

     <string-array name="menu">
            <item>1</item>
            <item>2</item>
            <item>3</item>
            </string-array>
    

    However, the R.array.menu having this issue to compile: As of ADT 14, resource fields cannot be used as switch cases. Invoke this fix to get more information.

  • Yuen Tong
    Yuen Tong about 12 years
    i have update the code above. But still having the same issue for the R.array.menu.
  • c2dm
    c2dm about 12 years
    Take a separate arrays.xml and take string array t<?xml version="1.0" encoding="utf-8"?> <resources> <array name="testArray"> <item>first</item> <item>second</item> <item>third</item> <item>fourth</item> <item>fifth</item> </array> </resources>here