怎么实现TextView动态加载文本?

ddrddr3 2013-07-24 12:58:24
想做一个TXT阅读器
但是一次性把文本set到TextView上面的话
如果文本大了会造成程序假死
我又不想做成那种要等的
怎么才能实现根据我屏幕显示的文本的位置
动态的加载后面的一部分到TextView里面呢?
换句话说 怎么能定位屏幕显示的文本是处在文本的什么位置的呢?
今天翻了半天API都没找到合适的方法 求大神给个思路了。。
另外 想要编辑TextView里面的文本用什么方法呢?
拜谢
...全文
254 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mushroom_yan 2014-05-13
  • 打赏
  • 举报
回复
求楼主告知 怎么分开加载内容到textview里面,我也在弄阅读器,阅读功能这里我读取一个大的txt文本显示在textview里面很慢啊,怎么做呢
Jabin. 2013-07-25
  • 打赏
  • 举报
回复
textView.append("每次要显示的内容");
骨灰级菜虫 2013-07-25
  • 打赏
  • 举报
回复
学习了。
mmorss 2013-07-25
  • 打赏
  • 举报
回复
[/quote]我懂你说的什么意思了 不过我现在卡的地方是 已经加载了一段很长的文本进textview 我怎么从textview里面定位我究竟现在读到哪了? [/quote] 那要看你怎么显示的了,如果TextView有滚动条就,textview.getText().length()*scroolbar.getScrollY(),就能得到你读到那了 是一屏显示的就得到当前的String, 然后position=String.indexof(string); 总之就是在退出时计算正在显示的文本在文件中的位置
ddrddr3 2013-07-25
  • 打赏
  • 举报
回复
引用 5 楼 mmorss 的回复:
我懂你说的什么意思了 不过我现在卡的地方是 已经加载了一段很长的文本进textview 我怎么从textview里面定位我究竟现在读到哪了? [/quote] 那要看你怎么显示的了,如果TextView有滚动条就,textview.getText().length()*scroolbar.getScrollY(),就能得到你读到那了 是一屏显示的就得到当前的String, 然后position=String.indexof(string); 总之就是在退出时计算正在显示的文本在文件中的位置[/quote] 谢谢回答了我那么多问题 很有收获
ddrddr3 2013-07-25
  • 打赏
  • 举报
回复
引用 7 楼 zjbpku 的回复:
textView.append("每次要显示的内容");
好吧 一语惊醒梦中人 我2了 忘记这个方法 我还一直想的textview直接加载大文件会很恼火 一直想从流里面入手 谢谢提醒
mmorss 2013-07-24
  • 打赏
  • 举报
回复
可以1024,1024的读到内存里,软引用保存当前,一次只加载一小部分显示,编辑就用Edittext,保存就seek到那个位置然后替换原来的文字就好了
ddrddr3 2013-07-24
  • 打赏
  • 举报
回复
引用 3 楼 mmorss 的回复:
比如说你的文本内容为"abcJKH0" 第一次读到了'c' 第二次就从'j'开始读了, long point=new String("abc").length(); RandomAccessFile file=new RandomAccessFile("ran.txt","rw"); file.seek(point); 然后从file中读后面的
我懂你说的什么意思了 不过我现在卡的地方是 已经加载了一段很长的文本进textview 我怎么从textview里面定位我究竟现在读到哪了?
mmorss 2013-07-24
  • 打赏
  • 举报
回复
比如说你的文本内容为"abcJKH0" 第一次读到了'c' 第二次就从'j'开始读了, long point=new String("abc").length(); RandomAccessFile file=new RandomAccessFile("ran.txt","rw"); file.seek(point); 然后从file中读后面的
ddrddr3 2013-07-24
  • 打赏
  • 举报
回复
引用 1 楼 mmorss 的回复:
可以1024,1024的读到内存里,软引用保存当前,一次只加载一小部分显示,编辑就用Edittext,保存就seek到那个位置然后替换原来的文字就好了
其实我想做的只有TXT 读到内存花不了多少时间 就是在加载到TextView的时间很久 每次只加载一部分也能做到 不过想做一个对文本位置的监听想不到办法 换句话说 比如加载好的文本 我快看完了 需要加载后面的 我该怎么发现什么时候该加载下一段? 你说的SEEK是哪个方法呢 我在textview和edittext和IO里面都没找到。。。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧