【问题标题】:Android EditText and large amount of textAndroid EditText 和大量文本
【发布时间】:2013-03-14 14:16:08
【问题描述】:

我正在开发一些能够编辑文本文件的应用程序。但我对 EditText 有严重的问题。目前我加载大小为 17KB 的文本文件。我不认为,17KB 是可怕的文本量。滚动很好,但是当我关注 EditText 并开始编辑时,它会延迟/冻结 4-5 秒。当我离开 EditText 时也会发生同样的情况。我使用的是 API 级别 8。这是我的 edittext 布局:

    <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>

这是我的java代码:

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

就是这样

我从 GooglePlay 下载了应用程序 Jota 文本编辑器,它可以完美地处理大型文本数据...谁能帮助我或指导我如何解决这个问题? 谢谢 安东

【问题讨论】:

  • EditText有听众吗?只是试图排除本机小部件的性能
  • 除了听众,换键盘有影响吗? IME 可能正在为词频处理编辑器的文本。
  • 不,我的 editText 没有任何监听器。我正在使用市场上的 HackersKeyboard。当我更改为其他 IME (dpad) 时,它会好一些,但延迟仍然约为 3-4 秒 :(
  • 嗯...当我将 android:lines="20" 更改为 android:lines="5" 时,性能会迅速提高...。但这不是我想要的。我需要几乎全屏的edittext。在平板电脑上,5 行的“记事本”会非常小:(
  • 这里定义的custom edit text 怎么样?不确定它是否会提高性能:(

标签: android android-edittext large-data


【解决方案1】:

你必须使用扫描仪来读取文本文件。

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

edit.setText(stringBuilder );

【讨论】:

    【解决方案2】:

    自定义 EditText 不会解决问题。当其中的文本内容变得太大时,在 EditText 中编辑会变慢。尝试使用 WebView 而不是 EditText。它也适用于非常大的文本内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多