Felder in Schleife füllen

N

newpageart

Neues Mitglied
0
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
 
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.
 
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)?
 
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");
        }
 
Vielen Dank!!!!
Das ist genau was ich gesucht habe.
 

Ähnliche Themen

D
Antworten
23
Aufrufe
2.384
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.923
OnkelLon
OnkelLon
S
Antworten
9
Aufrufe
1.151
swa00
swa00
Zurück
Oben Unten