- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
一段时间以来,我一直在尝试将一个大字符串(超过 25k 个字符)设置为 TextView
,但我一直得到“STRING_TOO_LARGE”输出。
我在某处读到,在运行时设置字符串可能有助于解决该问题,因此我修改了我的代码,但似乎没有帮助。我还尝试直接在 setText()
中设置资源 ID,但这并没有起到任何作用。
我在 Activity
中使用以下方法来显示 terms_dialog
:
private void showTermsPopup() {
Dialog termsDialog = new Dialog(this);
termsDialog.setContentView(R.layout.terms_dialog);
termsDialog.getWindow().setLayout(WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT);
// Cancel the dialog if you touch the background
termsDialog.setCanceledOnTouchOutside(true);
// Add the terms string to the dialog
TextView termsText = termsDialog.findViewById(R.id.termsTextView);
String terms = getResources().getString(R.string.terms);
termsText.setText(terms);
// Show the dialog
termsDialog.show();
}
这是 terms_dialog.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:padding="8dp"
android:scrollbarSize="0dp">
<TextView
android:id="@+id/termsTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>
</android.support.constraint.ConstraintLayout>
和 this 是我得到的结果(敏感信息被白化)。
最佳答案
正如@HB 链接所指出的那样。给我,你的 APK 文件中不能有大于 32,767 字节(以 UTF-8 编码)的字符串。
所以,我所做的是在名为 terms.txt
的 Assets 文件夹中创建一个 txt 文件,并将字符串放入其中。然后,使用以下函数将文件转换为字符串:
private String getTermsString() {
StringBuilder termsString = new StringBuilder();
BufferedReader reader;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("terms.txt")));
String str;
while ((str = reader.readLine()) != null) {
termsString.append(str);
}
reader.close();
return termsString.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
我只是将它分配给 TextView
。
关于java - TextView 显示 STRING_TOO_LARGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51732252/
一段时间以来,我一直在尝试将一个大字符串(超过 25k 个字符)设置为 TextView,但我一直得到“STRING_TOO_LARGE”输出。 我在某处读到,在运行时设置字符串可能有助于解决该问题,
当我在我的项目中添加插件以支持 Kotlin 时,然后在它从我的项目的 string.xml 文件中读取大字符串之后。它在下面给了我以下错误。 错误:字符串太大,无法使用 UTF-8 进行编码,而是改
Java 编译器错误:字符串太大,无法使用 UTF-8 进行编码,而是改为“STRING_TOO_LARGE”。 我想指出,我没有长字符串,也没有一个大于 32kb(最大为 3.7kb)的可绘制 ve
我目前在使用 Android Studio 时遇到了一些问题,因为我最近开始使用“Vector Assets”。我已经完成了在我的应用程序中正确显示它们所需的一切(使用 xml 中的 app:srcC
当我在 android studio 中清理 android 项目时,发生了错误,我已经返回到以前的提交或不同的分支,这几天前可以找到,但现在有这个错误。我已经检查了这个问题,并且没有为我的项目添加大
我是一名优秀的程序员,十分优秀!