Automatic counter value detection

I have an ArrayAdapter as follows

 ArrayAdapter<String>dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item); 

This is the adapter that I am going to use for my Spinner . I have values ​​(String array) for Spinner in my strings.xml file.

How can I set <string-array> in string.xml to a spinner pragmatically? Please, help!

+4
source share
4 answers

Just add it to your ArrayAdapter when you create it.

 String[] yourArray = getResources().getStringArray(R.array.array_name); ArrayAdapter<String>dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item, yourArray); 
+3
source

You can try something like this:

 String[] mTestArray; ArrayAdapter<String>dataAdapter; mTestArray = getResources().getStringArray(R.array.testArray); dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,mTestArray); 

and then attach the adapter to the Spinner.

 spinner.setAdapter(dataAdapter); 

Hope this helps !!!

+4
source

This tutorial: Android Spinners indicates that you can use the following code to install a Spinner array based on a resource:

 ArrayAdapter<CharSequence> dataAdapter = ArrayAdapter.createFromResource(this, R.array.string-array-id, android.R.layout.simple_spinner_item); dataAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 

Using the createFromResource() method instead of new and providing the resource identifier of your array should provide the intended result. See the manual for more details.

+2
source
 spinner2 = (Spinner) findViewById(R.id.spinner2); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item); String[] itemNames = getResources().getStringArray(R.array.stringArrayName); for (int i = 0; i < 16; i++) // Maximum size of i upto --> Your Array Size { dataAdapter.add(itemNames[i]); } spinner2.setAdapter(dataAdapter); 
+2
source