我有一个字符串,每秒都会收到不同的值。我想将所有值存储到ArrayList。问题是,当我试图显示所有值时,textView会更新到最后一个值。是否可以显示所有值;
我想显示如下值:500,400,300,200 ......
这是我的代码,
// that string receive a different value every second
// String values returns to me an integer
String values = stringbuilder.substring(item + 1, endOfLineIndex);
ArrayList<String> allvalues = new ArrayList<>();
allvalues.add(values);
for (int i = 0; i < allvalues.size(); i++) {
textView.setText(String.valueOf(allvalues));
}
答案 0 :(得分:0)
一种解决方案是构建一个包含所有字符串的String
,然后将textView
设置为该字符串。它会是这样的:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < allvalues.size(); i++) {
sb.append(allvalues.get(i) + ", ");
}
textView.setText(sb.toString());
基于评论的更新
似乎values
已包含您要显示的String
。我不确定您是否需要在Array
/ ArrayList
中存储任何值。以下是一些您可能会感兴趣的代码。
//Example values String based on OP's comments
String values = "100, 200, 300, 400, 500";
//If you need to store the values, this turns that String into a String[]
String[] valuesArray = values.split(", ");
//If you really want to store those values in an ArrayList instead of a regular Array, you can do this
ArrayList<String> valuesArrayList = new ArrayList<String>(Arrays.asList(valuesArray));
//Sets the textView to display the text, since values already reflects what you want to display
textView.setText(values);
答案 1 :(得分:0)
您想要使用分隔符连接字符串列表吗?是吗?
也许你可以尝试类似的东西。
public static void main(String args[]) {
ArrayList<String> values = new ArrayList<>();
values.add("Hi");
values.add("how");
values.add("are");
values.add("you?");
values.add("i'm");
values.add("fine");
values.add("thanks :)");
System.out.println(String.join(" - ", values));
}
这段代码将输出:
嗨 - 怎么 - 是 - 你呢? - 我很好 - 谢谢:)