0

楽しいアプリ用に偽のコマンドラインシステムを作成しています。次のように、入力と出力を同じTextViewに表示したいと思います。

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

EditTextのテキストを文字列に保存して\nと>を追加する方法はすでに理解しましたが、文字列全体を使用することはできません。RAMの詰まりを防ぐために、次のように行を削除したいと思います。 50?リストを使用すると、はるかに簡単になると思いました。

ただし、これは機能しません。

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値が使用される)で構成される文字列を返します。したがって、すべてのアイテムを1つの文字列に簡単に連結できます。

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

たぶん、すべての文字列をリストに入れ、追加するたびに、すべてのアイテムを含むリストから1つの文字列を再作成して、テキストビューに影響を与えることができます。

于 2012-08-22T14:14:00.067 に答える
0

ListView区切り文字なしでを使用し、を使用してデータを入力できますArrayAdapter

そうすれば、メモリについて心配する必要がなくなり、ユーザーは前のコマンドを簡単にスクロールできます。

于 2012-08-22T14:28:19.227 に答える