当前位置: 首页 > article >正文

Android textView 显示: STRING_TOO_LARGE

在Android中,字符串资源的长度限制是32KB,getString()方法返回的字符串资源的大小超过这个限制,就会抛出STRING_TOO_LARGE 这个错误。

我本地的临界值是:32.3 KB (33,090 字节)

小于等于33090时,能正常显示;大于33090时,显示:STRING_TOO_LARGE。

<string content=" ...."/>

问题点是:getResource().getString(R.string.content) 得到的是:STRING_TOO_LARGE。

如果你需要显示更大的字符串,你可以尝试以下几种解决方案:

1、分割字符串:你可以尝试将大字符串分割成几个小字符串,然后分别在TextView中显示。这可以通过在字符串的特定位置使用分隔符来实现。
例如:

String largeText = "This is a very large string...";  
String[] smallerTexts = largeText.split("...");  
for (String text : smallerTexts) {  
    TextView textView = new TextView(this);  
    textView.setText(text);  
}

2、使用WebView:

如果你需要显示非常大的文本,可能需要考虑使用WebView而不是TextView。WebView没有字符限制,但它的性能开销可能会稍大一些。

3、使用Assets:
在这里插入图片描述


    private String getTextFromAssets() {
        try {
            AssetManager assetManager = this.getResources().getAssets();
            InputStream inputStream = assetManager.open("disclaimer_content.txt");
            byte[] data = new byte[inputStream.available()];
            inputStream.read(data);
            String largeText = new String(data, "UTF-8");
            return largeText.replace("\\n", "\n");
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }

    }
    public  String getStringFromAssets() {
        String str = "";
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(this.getResources().getAssets().open("disclaimer_content.txt"), "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String line;
            StringBuilder stringBuilder = new StringBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line);
            }
            bufferedReader.close();
            inputStreamReader.close();
            str = stringBuilder.toString().replace("\\n", "\n");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }



http://www.kler.cn/news/155921.html

相关文章:

  • 23.12.3日总结
  • 鸿蒙工具DevEco Studio调试Build task failed. Open the Run window to view details.
  • 讲一讲redis的使用
  • WordPress外贸站优化工具,WordPress外贸SEO优化方法
  • iOS Class Guard 成功了,但无法区分差异
  • ssm医药进出口交易系统源码和论文
  • 移除元素、合并两个有序数组(leetcode)
  • 人工智能(pytorch)搭建模型21-基于pytorch搭建卷积神经网络VoVNetV2模型,并利用简单数据进行快速训练
  • Stable Diffusion 系列教程 - 1 基础准备(针对新手)
  • 浅析SD-WAN技术如何加强企业网络安全
  • YOLOv8 区域计数 | 入侵检测 | 人员闯入
  • 编程中常见的技术难题有哪些?By AI
  • java八股文
  • 文件操作详解
  • 猜数字赢金币
  • Unity报错总结
  • flutter开发实战-当前界面无操作60s返回主页实现
  • 力扣572:另一棵树的子树
  • 29 kafka动态配置
  • 华为OD机试真题-虚拟游戏理财-2023年OD统一考试(C卷)
  • windows 你的电脑不能投影到其他屏幕,请尝试重新安装驱动程序
  • C++-内联函数
  • 03-IDEA集成Git,初始化本地库,添加远程仓库,提交,拉取,推送,分支的快捷操作
  • ❀My学习Linux命令小记录(6)❀
  • Java 基础之数据类型
  • 什么是跨站脚本攻击
  • Clickhouse在货品标签场景的应用
  • 模型量化相关知识汇总
  • 程序的未定义行为(Undefined Behavior)
  • 含光伏发电的变电站供电系统设计