0

我正在为一个有趣的应用程序制作一个假的命令行系统,我想在同一个 TextView 中显示输入和输出,如下所示:

>something
>something else
>even more stuff
>etcetera.

我已经想出了如何将 EditText 中的文本存储到字符串中并添加 \n 和 >,但我不能在整个过程中使用字符串:为了避免堵塞 RAM,我想删除之后的行,比如说50?我认为使用 Lists 会容易得多。

但是,这不起作用:

log.setText((CharSequence) logText);

但是会怎样?

4

3 回答 3

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 是某种列表,因此您可以致电

log.setText(TextUtils.join("\n>", logText.subList(0, 50));
于 2012-08-22T14:22:23.323 回答
0

也许您可以将所有字符串放在一个列表中,每次添加一个时,从包含所有项目的列表中重新创建一个字符串,并将其影响到您的文本视图。

于 2012-08-22T14:14:00.067 回答
0

您可以使用ListView不带分隔符的 a 并使用ArrayAdapter.

这样您就不必担心内存问题,并且用户可以轻松滚动浏览以前的命令。

于 2012-08-22T14:28:19.227 回答