2017-11-15 4 views
0

Ich habe eine ArrayList Variable counties genannt und ich Daten aus meiner Datenbank zu extrahieren und sie auf diese ArrayList mit dem folgenden Code hinzufügen:Erste Daten aus einer Datenbank ohne Duplikate

//Get all data from database 
     Cursor cursor = database.rawQuery("SELECT * FROM " + tableName, null); 



//Add Counties to ArrayList 
     cursor.moveToFirst(); 
     while(!cursor.isAfterLast()){ 
      counties.add(cursor.getString(cursor.getColumnIndex("COUNTY"))); 
      cursor.moveToNext(); 
     } 

ich dann bin Darstellung dieser Daten in a ListView, die es dem Benutzer ermöglicht, einen Landkreis auszuwählen und zu einer anderen Aktivität zu wechseln.

Die Daten sind so, dass es mehrere Datensätze mit demselben Kreis sind, so sieht es aus wie:

COUNTIES 
______________ 
West Yorkshire 
West Yorkshire 
Lancashire 
Warwickshire 
Cornwall 
Lancashire 
West Yorkshire 

ich nur eine Instanz jeden Bezirk will bisher gezeigt und hat gekämpft, um eine Lösung zu finden .

+0

Holen Sie alle Daten, und dann nehmen Sie diese Daten und legen Sie es in eine Hash-Map. Solange der Schlüssel der hashmap gleich ist, werden keine Duples hinzugefügt. Sie können dann durch die hashmap iterieren, um die Werte zu erhalten. – DroiDev

+0

Vielen Dank für die Antwort Droi, nur um klarzustellen, würden die Daten direkt von meinem Cursor-Code oben in der HashMap gespeichert werden, oder würde ich die Daten von meiner ArrayList in meine HashMap und dann in meine ListView verschieben? – Imminence

+0

Ich bin neugierig, warum Sie alle Daten zurückbringen und dann nur speichern, was Sie wollen. Normalerweise würde ich etwas wie SELECT DISTINCT county FROM tabellenname ... –

Antwort

1

verwenden

Cursor Cursor = database.rawQuery ("SELECT distinct "+ city_column_name +" FROM" + tablename, null);

Statt:

Cursor Cursor = database.rawQuery ("SELECT * FROM" + tablename, null);