There are lots of more advanced things that you can do with Spinners but these aren't encountered that often - mainly when trying to build a custom user experience.
The one thing that does occur often is the need to dynamically change the list of items. There are many slight variations on this but essentially what you can do is change the String array and then call the adapter's notifyDataSetChange method. For example if you want to change Mexico, i.e. element one, to Greenland you would use:
The ArrayAdapter also has an add, clear, remove and an insert method which can be used to modify the underlying data but for this to work the object holding the data has to be modifiable. You can't modify a String array in this way. What you need is an ArrayList.