2016-05-10 6 views
-3

Ich versuche gerade, Daten von einem Array in einem Textfeld anzuzeigen, aber nur ein Element aus dem Array wird angezeigt. Das ist, was ich habe, so weit:Wie man Schleifendaten in einem Textfeld anzeigt

while (j<count){ 

    if (b != "no") {     
     tfBIDI.setText(book[j]); 
    } else { 
     tfBIDO.setText(book[j]); 
    } 
    j++; 
} 

Ist ist möglich, alle Daten aus einem Array in einem Textfeld angezeigt werden?

Danke für Ihre Hilfe.

+2

Wenn 'b' ist ein String, kann man nicht vergleichen Strings mit dem „==“ (oder! =) Betreiber. Verwende '.equals()'. Außerdem müssen Sie an den Textbereich anhängen und '.setText()' nicht aufrufen. – KevinO

+1

Konstruieren Sie eine 'Zeichenfolge' mit Ihrer gewünschten Nachricht, und legen Sie den Text des Textfelds fest. Oder verwenden Sie 'tfBIDO.setText (Arrays.toString (Buch));' –

+0

Die Verwendung des Anhangs funktionierte gut. Vielen Dank! –

Antwort

0

versuchen this out ...

String str_yes = ""; 
String str_no =""; 
while (j<count){ 

    if (b.equals("no")) { 
     no += book[j];      
    } else { 
    str_yes += book[j]; 
} 
    j++; 
    } 

tfBIDI.setText(str_no); 
tfBIDO.setText(str_yes); 
+0

In diesem Fall sollten Sie wirklich 'StringBuilder' für Effizienz ... – fabian

0

Sie haben die Textdaten des Buches Array verketten, und festgelegt, dass String als den Text der nur einmal TextField. Gerade jetzt jede Iteration Ihrer while-Schleife aktualisiert den TextFields Text, so dass Sie sehen nur den Wert der letzten Aktualisierung

String[] data = {"1", "2", "3", "4"}; 

     StringBuilder sb = new StringBuilder(); 
     for (int idx = 0; idx < data.length; idx++) { 
      sb.append(data[idx]); 
      sb.append(", "); 
     } 

     String joinedData = sb.toString(); 
     //or 
     joinedData = Stream.of(data).collect(joining(",")); 

     textField.setText(joinedData); 
+0

Oder ['StringJoiner'] (https://docs.oracle.com/javase/8/docs/api/java/util/StringJoiner.html) ... – fabian