我正在为一个有趣的应用程序制作一个虚假的命令行系统,我想在同一个TextView中显示输入和输出,如下所示:
>something
>something else
>even more stuff
>etcetera.
我已经想出如何将EditText中的文本存储到字符串中并添加\ n和>,但是我不能使用字符串来完成整个事情:为了避免堵塞RAM,我想删除之后,说50?我认为使用列表会更容易。
然而,这不起作用:
log.setText((CharSequence) logText);
但是会怎么样?
答案 0 :(得分:1)
此方法:
http://developer.android.com/reference/android/text/TextUtils.html#join(java.lang.CharSequence,java.lang.Iterable)
返回由每个元素之间的分隔符分隔的每个元素(要么强制转换为字符串或使用toString值)组成的字符串。因此,您可以轻松地将所有项目连接在一个字符串中。
你也可以使用http://developer.android.com/reference/java/util/AbstractList.html#subList(int,int) 限制所述清单中的项目数。
根据您的问题,我假设logText是某种类型的List,因此您可以调用
log.setText(TextUtils.join("\n>", logText.subList(0, 50));
答案 1 :(得分:0)
也许您可以将所有字符串放在一个列表中,每次添加一个字符串时,从列表中重新创建包含所有项目的单个字符串,并将其影响到您的textview。
答案 2 :(得分:0)
您可以使用不带分隔符的ListView
,并使用ArrayAdapter
填充它。
这样您就不必担心内存,用户可以轻松滚动以前的命令。