显示在TextView中
我正在做一个假命令行系统一个有趣的应用程序列表,我要显示在同一个TextView的输入和输出,就像这样:显示在TextView中
>something
>something else
>even more stuff
>etcetera.
我已经想通了解如何将EditText中的文本存储到字符串中并添加\ n和>,但是我无法使用字符串作为整个事情:为避免堵塞RAM,我想在删除行后说50?我认为使用列表要容易得多。
然而,这不起作用:
log.setText((CharSequence) logText);
但会出现什么?
也许你可以把所有的字符串放在一个列表中,每次添加一个字符串,从包含所有项目的列表中重新创建一个字符串,并将其影响到你的textview。
喜欢这个? String logValue = logText.toString(); – AwesomeUnicorn
不是。更像 String logValue =“”; for(String item:logText) logValue + = item; – Aerilys
从来不知道“+ =”也适用于字符串。谢谢! – AwesomeUnicorn
此方法:
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某种形式的名单,因此,你可以拨打
log.setText(TextUtils.join("\n>", logText.subList(0, 50));
你可以使用一个ListView
不使用隔离并使用ArrayAdapter
填充它。
这样你就不必担心内存,用户可以轻松地滚动浏览以前的命令。
TextUtils.join(list,“\ n”) – njzk2
Erm ...我不太明白你的意思......进一步澄清? :我 – AwesomeUnicorn
你必须迭代你的列表来获取每个项目(或''toString()'方法可能已经为你做这个) – FoamyGuy