1. xilence, 30.09.2011 #1
    xilence

    xilence Threadstarter Neuer Benutzer

    Hallo zusammen,
    ich komme im Moment zu keiner Lösung.
    Ich habe eine Klasse, die von ArrayAdapter erbt. In der getView() setze ich verschiedene Views in einer ListView, also eine Row.
    Konkret geht es darum, dass ein Benutzer einen Stundenplan erstellen kann. Dazu gibt es jeweils in einer TabSpec eine ListView, je nach Tag(Montag, Dienstag...). Insgesamt also 5 ListViews, auf die 5 TabSpecs verteilt.

    Nun kann der Benutzer eine Stunde hinzufügen. Dazu muss er neben dem Namen auch den Wochentag angeben.
    Nun soll die entsprechende ListView die Stunde anzeigen, wenn diese dem ausgewählten Wochentag entspricht. Also User wählt oben im Tabreiter z.B. Montag aus und es sollen die Stunden angezeigt werden, die Montags vorhanden sind.

    Da ist nämlich auch das Problem. Ich habe wie gesagt einen ArrayAdapter, dessen Datenmodell eine List<Lesson> ist. Eine Lesson hat ein Attribut in dem der Wochentag gespeichert ist.
    In der getView(...) wird überprüft ob der Tag des TabSpec dem Tag der Stunde entspricht. Es wird also geguckt, ob die Stunde in der aktuellen ListView angezeigt werden soll.
    Code:
     public View getView(int position, View convertView, ViewGroup parent) {
    ...
     if (context.getDay() == currentLesson.getWeekDay().getWeekDay()) {
                fillView(currentLesson, holder);
      }
    ...
    }
    
    private void fillView(Lesson currentLesson, ViewHolder holder) {
         holder.lessonNumber.setText(String.valueOf(currentLesson.getNumber()));
    }
    
    Das Problem ist jetzt, dass ich meinen ArrayAdapter wie folgt initialisiere:
    Code:
    timetableAdapter = new TimetableAdapter(this, getModel());
    
    getModel() liefer einfach eine ArrayList mit Lesson Objekten zurueck.

    Nun wird aber jedesmal, wenn der aktuell geöffnete Tab nicht dem Tag der Stunde entspricht eine Leerzeile in der entsprechenden ListView angezeigt.

    Meine Frag ist jetzt, wie kann ich meine Daten aufbereiten, um sie anhand von verschiedenen Tagen in dem ArrayAdapter selektieren zu können?
    Ich habe wenig Lust 5 ArrayListen und 5 ArrayAdapter für die entsprechenden Wochentage zu implementieren.
     
  2. xilence, 01.10.2011 #2
    xilence

    xilence Threadstarter Neuer Benutzer

    So Problem geloest. Habe eine SimpleAdapter genommen und eine Filtermethode geschrieben.
     
Die Seite wird geladen...
Similar Threads Forum Datum
Gerätenamen (Hostname) für das Mediapad m2 anzeigen und ggf ändern - Wo? Huawei MediaPad M2 10.0 Forum Freitag um 13:40 Uhr
Galaxy S8 Facebook Kontakte anzeigen Facebook Freitag um 20:22 Uhr
Suche: Klingeln von bestimmten Rufnummern im Silent Mode zulassen Tools Samstag um 13:35 Uhr
Gear Fit 2 - Apps auf Uhr anzeigen bzw. starten Samsung Gear Fit 2 Forum Sonntag um 13:02 Uhr
htc one m9 Daten retten HTC One M9 Forum Sonntag um 15:10 Uhr
Ändert sich durch den Nova Launcher die Moto Info Anzeige? Motorola Moto Z (Play) Forum Gestern um 08:56 Uhr
Samsung Galaxy S8 / S8+ / kein automatischer Datensync bei bestimmten Apps Samsung Galaxy S8 / S8+ (G950F/G955F) Forum Gestern um 11:55 Uhr
iPhone Daten zu bq X... bq Aquaris X / X Pro Forum Gestern um 13:32 Uhr
Erfahrung mit zweiter SIM Karte für Daten Ausland Huawei Mate 9 Forum Gestern um 18:08 Uhr
Galaxy S7 einzelnen Gruppen bestimmte Zeiten zuordnen Kommunikation Gestern um 20:39 Uhr