【问题标题】:Android setText erases past dataAndroid setText 擦除过去的数据
【发布时间】:2018-06-04 12:36:54
【问题描述】:

对不起,如果这个问题看起来太简单了,但我是新手,我还在学习!

我想要做的是将文本设置为文本视图。我想打印一个数组列表的前 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();

这对我有用。非常感谢您的回答!

【问题讨论】:

    标签: android textview settext


    【解决方案1】:

    使用 Append 方法代替 setText 方法

    【讨论】:

      【解决方案2】:

      在循环之前定义一个 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())
      

      【讨论】:

        【解决方案3】:

        设置可以这样的文字

        textview.setText(textview.getText().toString + "Your new text here");
        

        【讨论】:

          【解决方案4】:

          你可以试试这个简单的方法

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

          希望它有效。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-19
            • 2015-11-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-25
            相关资源
            最近更新 更多