2013-03-25 3 views
2

텍스트 파일을 편집 할 수있는 기능이있는 일부 응용 프로그램에서 작업합니다. 하지만 EditText에 심각한 문제가 있습니다. 현재 크기가 17KB 인 텍스트 파일을로드합니다. 나는 17KB가 끔찍한 양의 텍스트라고 생각하지 않는다. 스크롤은 괜찮지 만 EditText에 집중하고 편집을 시작하면 4-5 초 동안 지연/정지됩니다. 내가 EditText를 떠날 때 같은 일이 일어납니다.Android EditText 및 많은 양의 텍스트

edit = (EditText)view.findViewById(R.id.journal_text); 
    edit.setText(readFile(path)); 

내가 Jota 응용 프로그램을 다운로드 한 GOOGLEPLAY에서 모든

입니다 : 여기

<EditText android:id="@+id/journal_text" 
       android:layout_width="0dip" 
       android:layout_height="fill_parent" 
       android:gravity="top|left" 
       android:layout_weight="1" 
       android:lines="20" 
       android:inputType="textMultiLine|textNoSuggestions" 
       android:scrollbars="vertical" 
       android:fadeScrollbars="false" 
       > 

       <requestFocus /> 

      </EditText> 

내 자바 코드 : 여기 API 레벨 8을 사용하고있어 글고 내 레이아웃입니다 텍스트 편집기와 그것은 큰 텍스트 데이터와 완벽하게 작동 ... 아무도 나 에게이 문제를 해결하는 방법을 제발 날 도와 줄 수 있습니까? 고맙습니다 안동

+0

'EditText'에 리스너가 있습니까? 네이티브 위젯 성능을 배제하려고합니다. – slezica

+0

청취자뿐 아니라 키보드를 변경해도 차이가 있습니까? IME는 단어 빈도에 대한 편집기 텍스트를 처리하고있을 수 있습니다. –

+0

아니요, editText에 리스너가 없습니다. 시장에서 HackersKeyboard를 사용하고 있습니다. 다른 IME (dpad)로 변경하면 조금 나아졌지만 지연 시간은 여전히 ​​약 3-4 초입니다. ( – user1063364

답변

0

사용자 지정 EditText로 문제가 해결되지 않습니다. EditText에서 텍스트 내용이 너무 커지면 편집 속도가 느려집니다. EditText 대신 WebView를 사용해보십시오. 매우 큰 텍스트 콘텐츠에도 완벽하게 작동합니다.

0

텍스트 파일을 읽으려면 스캐너를 사용해야합니다.

StringBuilder stringBuilder = new StringBuilder(); 
Scanner scanner = new Scanner(tempFile).useDelimiter("\\Z"); 
while (scanner.hasNext()) { 
stringBuilder .append(scanner.next()); 
} 

edit.setText(stringBuilder); 
관련 문제