在新行中的TextView中传递一个新字符串

时间:2016-06-28 13:27:10

标签: android string textview

我正在使用 putExtras getExtras 从一个活动向另一个活动发送一个字符串。 然后我将此字符串显示为 TextView 。当我返回并选择另一个字符串时,它会在TextView中覆盖前一个字符串。 我想将新字符串放在textView的新行中。 这该怎么做? (我用按钮发送字符串) 这是我在接收活动中的代码:

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_completed_tasks);


    TextView completedTasksView = (TextView)findViewById(R.id.completed_tasks);


    Intent intent = getIntent();

    String completedTasks = intent.getExtras().getString("completedTasks");
    completedTasksView.setText(completedTasks);


}

}

4 个答案:

答案 0 :(得分:2)

根据:TextView

  

追加(CharSequence文字)

     

便捷方法:追加指定的   文本到TextView的显示缓冲区,将其升级到   BufferType.EDITABLE,如果它尚不可编辑。

所以使用:

completedTasksView.append("\n" + completedTasks);

答案 1 :(得分:0)

您必须使用putExtras存储先前发送的字符串,因为下次活动将再次重新创建,之前的数据将丢失。要保存前面的String,你可以创建一个静态arraylist,并在getIntent上添加你的字符串到arraylist,当你想要打印时使用for循环并创建一个带有附加" / n"并将该字符串设置为textview 例如。

public static ArrayList<String> list;

将字符串添加到列表

list.add(completedTasks);

从arraylist

创建单个字符串
String text="";
for(int i=0;i<list.size();i++)
{
if(text!="")
{
text=text+"\n"+list(i);
}else{
text=list(i);
}
}
textview.setText(text);

注意: 对于app而言,Arraylist应该是静态的而不是在activity中,因此在不同的类中定义arraylist然后是activity

答案 2 :(得分:0)

你可以用一个String变量创建一个globle类,当你得到新的字符串时,每次设置文本时都会存储completedTask Text ...

答案 3 :(得分:0)

创建一个全局字符串并始终附加到它:

    String completedTasks = "";

      @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_completed_tasks);


        TextView completedTasksView = (TextView)findViewById(R.id.completed_tasks);


        Intent intent = getIntent();

        completedTasks += "\n" + intent.getExtras().getString("completedTasks");
        completedTasksView.setText(completedTasks);


    }

    }