我正在使用 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);
}
}
答案 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);
}
}