2016-05-10 4 views
-3

現在、テキストフィールドに配列のデータを表示しようとしていますが、配列の1つの項目だけが表示されます。これは私がこれまで持っているものです。テキストフィールドにループデータを表示する方法

while (j<count){ 

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

ですテキストフィールドの配列からすべてのデータを表示することが可能ですか?

ありがとうございました。

+2

の値だけを見て、あなたは「==」との文字列を比較する(またはすることはできません! =)演算子。 '.equals()'を使う。また、テキスト領域に追加する必要があり、 '.setText()'を呼び出さないでください。 – KevinO

+1

目的のメッセージで 'String'を作成し、テキストフィールドのテキストを設定します。 'tfBIDO.setText(Arrays.toString(book));' –

+0

を使用してください。本当にありがとう! –

答えて

0

これを試してみる...

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

この場合、実際に効率のために 'StringBuilder'を使用する必要があります... – fabian

0

あなたが本の配列のテキストデータを連結する必要があり、一度だけTextFieldのテキストとしてStringことを設定します。今、あなたのwhileループの各反復はTextFieldsテキストを更新 'B'が文字列である場合は、最後の更新

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

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

関連する問題