2012-04-04 11 views
0

Ich möchte ein Formular haben, das TextFields hinzufügen oder löschen kann.

ich bisher war ein Array Erstellen und Ändern der Größe (eigentlich Original-Array auf eine neue, größere Array kopieren), dann alle Elemente bilden das Löschen und Hinzufügen alles wieder + diese neue Reihe von Textfeldern

aber ich denke, das wird langsam das Programm herunterfahren, wenn es viele Textfelder gibt
Hinzufügen von TextFileds zum Vector funktioniert nicht. Wenn es TextField zum Formular hinzufügen wird, sagtJ2ME TextField in einem Vektor?

es sagt, dass das Element nicht es ist.

method Form.append(Item) is not applicable 
    (actual argument Object cannot be converted to Item by method invocation conversion) 
method Form.append(Image) is not applicable 
    (actual argument Object cannot be converted to Image by method invocation conversion) 
method Form.append(String) is not applicable 
    (actual argument Object cannot be converted to String by method invocation conversion) 

Sollte ich mit Größenanpassung Arrays zählen, oder gibt es einen besseren Weg?

Antwort

2

Laut Formulardokumentation "Die in einem Formular enthaltenen Elemente können mit den Methoden append, delete, insert und set bearbeitet werden." Und Sie haben auch eine Get-Methode, also glaube ich nicht, dass Sie überhaupt einen Vector brauchen. Sagen wir, Sie haben:

 

    Form form = new Form("Multiple fields"); 

    // If you want to add a new TextField 
    form.append(new TextField("label", "text", 10/*maxSize*/, TextField.ANY)); 

    // if you want to delete the last TextField: 
    form.delete(form.size() - 1); 

    // to iterate at all fields: 
    for (int i = 0; i < form.size(); i++) { 
     TextField textField = (TextField) form.get(i); 
    } 

0

Kompilierung Fehler zu vermeiden, wenn Sie explizit Vector Elemente benötigt Typ zu Formular hinzufügen (Item):

form.append((Item)(vector.elementAt(i))); 

Hinweis, wenn Sie mit Java SE 5 oder höher verwendet werden, um Arbeit - bedenken Sie, dass Java ME basiert auf viel ältere Version (JDK 1.3). Infolgedessen würden Sie viel explizitere Casts sehen, weil eine Generizierung keine Option ist.