2016-05-12 9 views
1

Hallo Ich möchte alphabetisch sortiertes Array name = "planets_array" in Spinner anzeigen. Ich habe einige Informationen über .Sort-Sammlungen und Array-Liste gefunden, aber nichts davon lassen Sie mich verstehen, wie es funktioniert. Also bitte hilf mir und zeig mir ein Beispiel. Ich habe in strings.xml:Beispiel für sortierte String-Array in Spinner

<string-array name="planets_array"> 
    <item>Dein Ziel</item> 
    <item>Mercury</item> 
    <item>Venus</item> 
    <item>Earth</item> 
    <item>Mars</item> 
    <item>Jupiter</item> 
    <item>Saturn</item> 
    <item>Uranus</item> 
    <item>Neptune</item> 
</string-array> 

Und in Activity.java:

Spinner spinner = (Spinner) findViewById(R.id.spinner1); 
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
R.array.planets_array, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

Antwort

1

1. Sortieren Sie die Planeten-Arrays.

String[] planetsArray = getResources().getStringArray(R.array.planets_array); 
List<String> planetsList = Arrays.asList(planetsArray); 
Collections.sort(planetsList); //planetsArray will be sorted 

2. Pass sortierten Array-Liste an den Adapter.

Spinner spinner = (Spinner) findViewById(R.id.spinner1); 
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, planetsList); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 
+1

Für mich Biene sortiert es funktioniert und Code ist leicht zu verstehen. Danke –

2

Sie direkt in Ihrem xml verwenden können ...........

<Spinner 
      android:layout_width="150dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/namespinner" 
      android:entries="@array/planets_array" 
      android:spinnerMode="dropdown"/> 

diese Zeile in XML verwenden android:entries="@array/planets_array" ......

OR

Änderung dieser Linie ..........

String [] myArray=getResources().getStringArray(R.array.name); 
    Arrays.sort(myArray); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,myArray); 

genießen ............

+0

leid, dass ich vergessen String-Array hinzufügen sollte aphabetical –

+0

@TomaszOkraszewski haben Blick auf bearbeiten Antwort ..... – sushildlh

1

Codierung Sie das Array manuell

sortieren müssen
Spinner spinner = (Spinner) findViewById(R.id.spinner1); 
String[] planets_array = getResources().getStringArray(R.array.planets_array); 
Arrays.sort(planets_array); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, planets_array); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 
1
String arr[] = getResources().getStringArray(R.array.planets_array);  
    Comparator<String> stringComparator = new Comparator<String>() { 
        @Override 
        public int compare(String lhs, String rhs) { 
         return lhs.compareTo(rhs); 
        } 
       }; 
    Arrays.sort(arr,stringComparator); 

so bekam jetzt hast du Array sortiert, so dass Sie diese in ArrayAdapter

verwenden können
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arr); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(spinnerArrayAdapter);