2016-05-08 10 views
0

Ich habe kleine Android-App, aber die Sqlite-Datenbank ist groß, und das Laden von Formularen ist langsam. Wie kann ich das Laden von Listview beschleunigen und nach Namen sortieren?Beschleunigen Sie Listview laden und sortieren

Mein Code ist hier:

public void nameload(){ 
    ArrayList<String> names = new ArrayList<String>(); 
    db = openOrCreateDatabase(Adatbazis, MODE_PRIVATE, null); 
    Cursor Namecursor = db.rawQuery("select DISTINCT name from Table WHERE ztr='"+ztrcode+"'", null); 
    Namecursor.moveToFirst(); 

    String name = ""; 

    while (!Namecursor.isAfterLast()) { 
     name = "" + Namecursor.getString(Namecursor.getColumnIndex("name")); 
     names.add(name); 
     Namecursor.moveToNext(); 

    } 


    //A tömb elemeinek betöltése a UI-ba 
    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
      this, 
      android.R.layout.simple_list_item_1, 
      names); 


    namelist.setAdapter(adapter1); 

    Namecursor.close(); 
} 

Danke für die Hilfe me :)

+0

Verwendung 'SimpleCursorAdapter' und nicht' ArrayAdapter' – pskink

+0

Können Sie mir schreiben einen Code? Ich bin Junior-Schulentwickler :) –

+0

erstellen Sie einfach 'SimpleCursorAdapter' und übergeben Sie es an' setAdapter' Methode – pskink

Antwort

0

Immer daran denken, den Cursor schließen nach setAdapter() kann der Adapter den Zugriff auf die Daten verhindern, die die Belastung langsam macht.

So Ihre Namecursor.close(); nach der Schleife bewegen, bevor ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(..)