1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Felder in Schleife füllen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von newpageart, 20.10.2011.

  1. newpageart, 20.10.2011 #1
    newpageart

    newpageart Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    49
    Erhaltene Danke:
    0
    Registriert seit:
    20.10.2011
    Hallo alle zusammen!

    Ich habe ein Formular erstellt (bestehend aus Textfeldern, Spinner,CheckBox und Radiobuttons) mit dem Informationen in einer Textdatei gespeichert werden. Dies funktioniert auch ohne Problme.
    Der Aufbau der Textdatei sieht folgendermaßen aus:

    Textfeld1:TextTextText
    Textfeld2:TextTextText
    Spinner1:Auswahltext
    CheckBox1:True
    CheckBox2:False
    usw...


    Nun würde ich diese Informationen gerne zu einen anderen Zeitpunkt wieder einlesen. Wie gehe ich da am besten vor?

    Bis jetzt habe ich es so gemacht:
    Code:
    br = new BufferedReader(new InputStreamReader(new FileInputStream("/sdcard/test.txt")));
                            while((line = br.readLine()) != null)
                            {
                                int index = line.indexOf(":");
                                String strFieldName = line.substring(0,index);
                                String strFieldValue = line.substring(index+1);
                                
                                if(strFieldName.compareTo("Textfeld1") == 0){
                                    EditText input = (EditText) findViewById(R.id.Textfeld1);
                                    input.setText(strFieldValue);
                                }
                            }
    
    Muss ich jetzt für jedes einzele feld eine eigene IF-Anweisung schreiben oder kann man die Felder automatisch in der Schleife durchlaufen?

    Vielen Grüße,
    Tom
     
  2. Tom299, 21.10.2011 #2
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    hmm anstatt dem TextFeldName könntest du auch die ID speichern, also der int-wert, über den du auch mit R.id.xxx zugreifst.

    oder wenn alle felder immer gefüllt sind kennst du ja die reihenfolge, wie du speicherst und weißt, in welcher reihenfolge du wieder füllen mußt.
     
  3. newpageart, 21.10.2011 #3
    newpageart

    newpageart Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    49
    Erhaltene Danke:
    0
    Registriert seit:
    20.10.2011
    Danke, für die Antwort. Das wäre zumindest eine Idee.
    Gibt es eventuell noch eine Funktion mit der man ermitteln kann um was für einen Feld es sich handelt(EditText, CheckBox, RadioButton oder Spinner)?
     
  4. Tom299, 21.10.2011 #4
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    man kann mit instanceof abfragen, was für eine Klasse dahinter steckt, z.B.:

    Code:
            if (layout.findViewById(R.id.mandant_dialog_editMandantID) instanceof EditText) {
                System.out.println("Yes it's a EditText");
            }
    
            if (layout.findViewById(R.id.mandant_dialog_chkEBZ) instanceof EditText) {
                System.out.println("Yes it's a EditText");
            }
            else {
                System.out.println("Not an EditText");
            }
            
            if (layout.findViewById(R.id.mandant_dialog_chkEBZ) instanceof CheckBox) {
                System.out.println("Yes it's a CheckBox");
            }
    
     
  5. newpageart, 21.10.2011 #5
    newpageart

    newpageart Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    49
    Erhaltene Danke:
    0
    Registriert seit:
    20.10.2011
    Vielen Dank!!!!
    Das ist genau was ich gesucht habe.
     

Diese Seite empfehlen