Android sortiert Listenansicht alphabetisch

Also versuche ich, eine einfache arrayadapter listview zu sortieren. Hier habe ich versucht:

ListView lv; String[] months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; ArrayAdapter<String> adapter; ArrayList<String> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView)findViewById (R.id.listView1); lv.setFastScrollEnabled(true); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, months); lv.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch (item.getItemId()) { case R.id.sortasc: list = new ArrayList<String>(Arrays.asList(months)); Collections.sort(list); for(int i=0; i < list.size(); i++){ System.out.println(list.get(i)); } adapter.clear(); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); adapter.notifyDataSetChanged(); return true; case R.id.sortdesc: return true; default: return super.onOptionsItemSelected(item); } } 

Aber ich bekomme nicht unterstütztOperationException, was stimmt damit? Ich brauche hilfe Danke im Voraus!

  • Installieren und Verwenden des Android NDK in Eclipse
  • Android VideoView: Videoansicht ist in einer Dialogansicht viel dunkler
  • Android: Jumbo-Modus vs Multidex
  • PreferenceActivity Android 4.0 und früher
  • Wie kann ich Bearbeiten Textfeld und Schaltfläche in ActionBar hinzufügen?
  • Der Rand des Elements in ListView kann nicht mit benutzerdefiniertem Adapter eingestellt werden
  • OnClick Listener zu einem ListView Image - Android
  • Wie bekomme ich das Datum aus dem DatePicker-Widget in Android?
  • Unterschied zwischen den Signaturversionen - V1 (Jar Signature) und V2 (Full APK Signature) beim Generieren von signierten apk in AndroidStudio?
  • Wie füge ich das "Action Bar Icon Pack" zu Android Studio hinzu
  • Wie man auf Android File System von Windows 7 Befehlszeile über USB zugreifen kann
  • RETROFIT & AUTH COOKIE
  • 7 Solutions collect form web for “Android sortiert Listenansicht alphabetisch”

    Sie haben nach dem Sortieren Ihrer Artikel nicht setAdapter (Adapter) genannt.

    Verwenden Sie wie unten

     adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); lv.setAdapter(adapter); adapter.notifyDataSetChanged(); 

    Anstatt von

     adapter.clear(); // Useless adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); adapter.notifyDataSetChanged(); 

    Hier ist der Trick …

     private void sortAscending () { List<String> sortedMonthsList = Arrays.asList(months); Collections.sort(sortedMonthsList); months = (String[]) sortedMonthsList.toArray(); } 

    Und für ArtAscending, rufen Sie an

     sortAscending(); adapter.notifyDatasetChanged(); 

    Ebenso können Sie benutzerdefinierte Komparator für Sortierung absteigen …

    Hoffe das hilft…:)

     Comparator<String> ALPHABETICAL_ORDER1 = new Comparator<String>() { public int compare(String object1, String object2) { int res = String.CASE_INSENSITIVE_ORDER.compare(object1.toString(), object2.toString()); return res; } }; Collections.sort(your array name, ALPHABETICAL_ORDER1); 

    Android sortiert Listenansicht alphabetisch.

     listAdapter = new AppsAdapter(MainActivity.this,R.layout.content_layout,appList); final Collator col = Collator.getInstance(); listAdapter.sort(new Comparator<ApplicationInfo>() { @Override public int compare(ApplicationInfo lhs, ApplicationInfo rhs) { return col.compare(lhs.loadLabel(packageManager),rhs.loadLabel(packageManager)); } }); 
    1. Sortiere dein Array
    2. Adapter neu erstellen.
    3. Adapter auf Listenansicht anwenden.

    Um eine Liste zu sortieren, müssen Sie einen Komparator verwenden . Sie müssen die zugrunde liegenden Sammlungen mit einem Vergleicher sortieren, der alphabetische Sortierung macht und dann die Liste benachrichtigt, um sich selbst zu aktualisieren.

    Hier ist ein Beispiel dafür mit einem ArrayAdapter: https://stackoverflow.com/a/8920348/1369222

    Es ist einfach, wenn du schon einen anderen Adapter hast, kannst du einfach diesen Code unter der deklaration des Adapters einfügen

     adapter.sort(new Comparator<String>() { @Override public int compare(String arg1, String arg0) { return arg1.compareTo(arg0); } }); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.