1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Prengepower, 24.03.2011 #1
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Hey!

    In meiner Datenbank gibt es die Spalte 'date' in der das Datum als String gespeichert ist. Mein Spinner soll alle Daten anzeigen, allerdings keine doppelt.

    Ich habe jetzt folgende Abfrage um den Cursor zu bekommen:
    Code:
    	public Cursor fetchDates(){
    		Date now = new Date();
    		Integer year = now.getYear();
    		Integer month = now.getMonth();
    		Integer day = now.getDate();
    		
    		Long datetime = (new Date(year, month, day)).getTime();
    		
    		return database.rawQuery("SELECT  DISTINCT "+ KEY_DATE+", "+KEY_ROWID+" FROM "+ DATABASE_TABLE+" WHERE "+KEY_BEGIN+">="+datetime.toString()+" AND "+KEY_SHOW+"=1 ORDER BY "+KEY_BEGIN+" ASC", null);
    	}
    Das funktioniert auch soweit, allerdings nur, wenn ich die ROWID mit ausgebe. Sobald ich das weglasse - was ich ja machen müssten, damit das DISTINCT Wirkung zeigt, bekomme ich einen Fehler, dass der Spinner keine ROWID findet -.-

    Hier noch der Code wo ich den Spinner fülle:
    Code:
    	private void fillSpinner(){
    		cursorDate = mDbAdapter.fetchDates();
    		startManagingCursor(cursorDate);
    		
    		Spinner dateSpinner = (Spinner) findViewById(R.id.spinnerDate);
    
    		String[] from = new String[] { DatabaseAdapter.KEY_DATE };
    		int[] to = new int[] { android.R.id.text1 };
    				
    		// Now create an array adapter and set it to display using our row
    		SimpleCursorAdapter spinneradapt = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cursorDate, from, to);
    		
    		spinneradapt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            dateSpinner.setAdapter(spinneradapt);
            dateSpinner.setPrompt(this.getResources().getString(R.string.spinnerPrompt)); 
            dateSpinner.setAdapter(spinneradapt);
    	}
    Wie kann ich das beheben?

    Danke!
     
  2. mago, 24.03.2011 #2
    mago

    mago Junior Mitglied

    indem Du group by anstat von distinct verwendest.
     
  3. Prengepower, 24.03.2011 #3
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Mmh und wie soll ich das dann auswerten?
    Hab noch nie mit Group By gearbeitet..
     
  4. mago, 24.03.2011 #4
    mago

    mago Junior Mitglied

    Ich hab das mal mit einem Table ausprobiert, den ich in einer Datenbank habe.

    Hoffentlich wird es damit klarer.

    Code:
    select _id, logDate from logentry group by logDate order by _id;
     
  5. Prengepower, 25.03.2011 #5
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Danke für deine Hilfe! Hab es aber jetzt auch auf einem anderen Weg hinbekommen.
    Mein Problem ist jetzt allerdings noch, dass meine Einträge im Spinner nach dem ersten Buchstaben sortiert sind. Ich kann meine Sortierung ändern wie ich will, aber das hilft nichts..

    Lässt sich das irgendwie abstellen?
     
  6. garak, 25.03.2011 #6
    garak

    garak Ehrenmitglied

    Du verwendest doch ein Array-Adapter, der ist für die Sortierung verantwortlich.
     
  7. Prengepower, 25.03.2011 #7
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Öhm das verstehe ich jetzt net so ganz recht !?
     
  8. garak, 25.03.2011 #8
    garak

    garak Ehrenmitglied

    Momentan hast du einen SimpleCursorAdapter zum Einsatz gebracht (also im Prinzip einen Array-Adapter), der die Daten aus der Tabelle liest und dem Spinner zur Verfügung stellt. Sortierung inklusive. Anstelle dessen kannst du direkt den Array-Adapter nehmen, die Daten holen, umsortieren und dem Spinner geben. Oder eine andere Möglichkeit, überschreiben die Klasse SimpleCursorAdapter und ändere dort die Methode ab, um die Daten umzusortieren. Was einfacheres fällt mir gerade nicht ein. Sortierung in der Datenbankabfrage hattest du ja probiert.
     
    Prengepower gefällt das.
  9. Prengepower, 28.03.2011 #9
    Prengepower

    Prengepower Threadstarter Android-Hilfe.de Mitglied

    Coole Sache hat geklappt - Danke ;) :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Loading Spinner Android App Entwicklung 12.11.2017
[OFFEN] WebView Loading Spinner Android App Entwicklung 08.11.2017
[OFFEN] Keine doppelten Einträge in die Firebase Datenbank Android App Entwicklung 27.10.2017
[OFFEN] Übereinstimmung Spracherkennung Datenbank finden Android App Entwicklung 13.10.2017
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung 19.09.2017
[OFFEN] Fehlende Elemente im RecyclerView innerhalb eines Fragments Android App Entwicklung 01.09.2017
[OFFEN] DialogFragment dynamisch mit RecyclerView füllen Android App Entwicklung 02.06.2017
[OFFEN] Updateinstallation: Trotzdem Datenbank gelöscht Android App Entwicklung 12.05.2017
[ERLEDIGT] Spinner feste double Werte zuordnen Android App Entwicklung 24.04.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017

Benutzer fanden diese Seite durch die Suche nach:

  1. fülle string-array von datenbank android

    ,
  2. android daten aus datenbank in spinner

    ,
  3. android spinner befüllen

    ,
  4. java spinner über datebank füllen
Du betrachtest das Thema "Spinner mit Elementen aus einer Datenbank füllen" im Forum "Android App Entwicklung",