-1

Sorry, if this question seems too easy, but i'm new, and i'm still learning!

What i want to do, is to setText to a textview. I want to print the first 5 strings of an arraylist. Therefore i have done the following:

           for (int i = 0; i < 5; i++) {
            String date_time = allDate_time.get( i );
            String date = date_time.substring( 0, date_time.indexOf( "T" ) );
            String time = date_time.substring( date_time.indexOf( "T" ) + 1, date_time.indexOf( "+" ) );
            textView2.setText( allId.get( i ) + "  " + allTemp.get( i ) + "  " + allHum.get( i ) + "  " + allBat.get( i ) + "  " + allMode.get( i ) + "  " + date + "  " + time + "  " + allLux.get( i ) + "\n" );
        }

Unfortunately, i suspect the setText to erase the past data, and only to print the last possibility. Is there anything i can do, so setText doesn't erase past data?

EDIT

textView2.append();

this worked for me. Thanks a lot for your answers!

Buster3650
  • 470
  • 2
  • 8
  • 19

4 Answers4

1

Use Append method for instead setText method

Parth Suthar
  • 123
  • 4
1

define a StringBuilder before the loop and append your text to the builder and the after the loop add the value to textview.

StringBuilder stringBuilder =  new StringBuilder();
    for (int i = 0; i < 5; i++) {
        String date_time = allDate_time.get( i );
        String date = date_time.substring( 0, date_time.indexOf( "T" ) );
        String time = date_time.substring( date_time.indexOf( "T" ) + 1, date_time.indexOf( "+" ) );
        stringBuilder.append(allId.get( i ) + "  " + allTemp.get( i ) + "  " + allHum.get( i ) + "  " + allBat.get( i ) + "  " + allMode.get( i ) + "  " + date + "  " + time + "  " + allLux.get( i ) + "\n" )
    }
    textview.settext(stringBuilder.toString())
SproutinGeek
  • 327
  • 3
  • 19
1

Set can text like this

textview.setText(textview.getText().toString + "Your new text here");
SafalFrom2050
  • 687
  • 6
  • 12
1

You can try this easy way

 textView2.setText("");

        for (int i = 0; i < 5; i++) {
                    String date_time = allDate_time.get( i );
                    String date = date_time.substring( 0, date_time.indexOf( "T" ) );
                    String time = date_time.substring( date_time.indexOf( "T" ) + 1, date_time.indexOf( "+" ) );

                    String toText = textView2.getText().toString()+allId.get( i );

                    textView2.setText(toText );
                }

Hope it works.

Sandeep Parish
  • 1,888
  • 2
  • 9
  • 20