2012-08-22 4 views
0

나는 재미있는 앱 가짜 명령 줄 시스템을 만들고있어의 목록을 표시하고이 같은 동일한 텍스트 뷰에서 입력 및 출력, 보여주고 싶은 : 이미 생각텍스트 뷰

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

을 편집 텍스트에서 문자열을 저장하고 \ n 및>을 추가하는 방법을 알아 냈습니다. 그러나 모든 것을 위해 문자열을 사용할 수는 없습니다. RAM을 막히지 않으려면 줄을 지우고 싶습니다. 말하자면 50입니까? 목록을 사용하는 것이 훨씬 쉬울 것이라고 생각했습니다.

log.setText((CharSequence) logText); 

을하지만 것입니다 :

그러나이 작동하지 않습니다?

+0

TextUtils.join (목록, "\ n") – njzk2

+0

음 ... 나는 네가 그곳에서 의미하는 바를 잘 이해하지 못한다. : – AwesomeUnicorn

+0

각 항목을 얻기 위해 목록을 반복해야합니다 (또는'toString()'메소드가 이미 이것을 할 수도 있습니다) – FoamyGuy

답변

0

어쩌면 모든 문자열을 목록에 넣을 수 있습니다. 목록을 추가 할 때마다 항목을 모두 포함하는 단일 문자열을 목록에서 다시 작성하고 텍스트보기에 적용 할 수 있습니다.

+0

이렇게하면 되나요? String logValue = logText.toString(); – AwesomeUnicorn

+0

아니요. more like 문자열 logValue = ""; (문자열 항목 : logText) logValue + item; – Aerilys

+0

문자열에 대해 "+ ="도 알지 못했습니다. 감사! – AwesomeUnicorn

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) 을 사용하여 해당 목록의 항목 수를 제한 할 수도 있습니다.

질문에서

나는 그러므로 당신은 구분없이 ListView를 사용하고 ArrayAdapter를 사용하여 채울 수

log.setText(TextUtils.join("\n>", logText.subList(0, 50)); 
0

를 호출 할 수 있습니다, logText이 어떤 종류의 목록입니다 가정합니다.

그런 식으로 메모리에 대해 걱정할 필요가 없으며 사용자는 이전 명령을 쉽게 스크롤 할 수 있습니다.