Android setText стирает прошлые данные - PullRequest
0 голосов
/ 04 июня 2018

Извините, если этот вопрос кажется слишком легким, но я новичок, и я все еще учусь!

Что я хочу сделать, так это установить текст для просмотра текста.Я хочу напечатать первые 5 строк массива.Поэтому я сделал следующее:

           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" );
        }

К сожалению, я подозреваю, что setText стереть прошлые данные и только распечатать последнюю возможность.Что я могу сделать, так что setText не стирает прошлые данные?

РЕДАКТИРОВАТЬ

textView2.append();

это сработало для меня.Большое спасибо за ваши ответы!

Ответы [ 4 ]

0 голосов
/ 04 июня 2018

Вы можете попробовать этот простой способ

 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 );
                }

Надеюсь, это сработает.

0 голосов
/ 04 июня 2018

определяет StringBuilder перед циклом и добавляет ваш текст в построитель, а после цикла добавляет значение в 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())
0 голосов
/ 04 июня 2018

Установить можно так:

textview.setText(textview.getText().toString + "Your new text here");
0 голосов
/ 04 июня 2018

Используйте метод Append для метода setText

...