android:在strings.xml中声明大字符串

android:在strings.xml中声明大字符串,android,string,Android,String,我的应用程序中有一个非常大的HTML字符串 当我在代码中使用它时,一切都很好,但是当我尝试在strings.xml中声明它时,我得到了一些错误。有没有办法在strings.xml中创建字符串的简单副本?谢谢错误可能出现在特殊字符处,如@双引号单引号等。要克服此问题,请将前缀\添加到它,并解决您的错误 如果以编程方式分配相同的字符串,也会发现相同的问题 String mString= "your huge string with @ error"; 在这种情况下,还必须克服前缀为反斜杠的问题

我的应用程序中有一个非常大的HTML字符串


当我在代码中使用它时,一切都很好,但是当我尝试在strings.xml中声明它时,我得到了一些错误。有没有办法在strings.xml中创建字符串的简单副本?谢谢

错误可能出现在特殊字符处,如
@
双引号
单引号
等。要克服此问题,请将前缀
\
添加到它,并解决您的错误

如果以编程方式分配相同的字符串,也会发现相同的问题

String mString= "your huge string with @ error";
在这种情况下,还必须克服前缀为反斜杠的问题

 String mString= "your huge string with \@ error";

错误可能出现在特殊字符处,如
@
双引号
单引号
等。要克服此问题,请将前缀
\
添加到它,然后解决错误

如果以编程方式分配相同的字符串,也会发现相同的问题

String mString= "your huge string with @ error";
在这种情况下,还必须克服前缀为反斜杠的问题

 String mString= "your huge string with \@ error";

HTML和XML是相同的基本语言,我不相信您可以将HTML存储在字符串中,为什么不保存HTML页面并将其与应用程序打包


在res>raw中将页面另存为html页面,然后调用此方法

 String html = Utils.readRawTextFile(ctx, R.raw.rawhtml);

 public static String readRawTextFile(Context ctx, int resId)
     {
          InputStream inputStream = ctx.getResources().openRawResource(resId);

             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

             int i;
              try {
               i = inputStream.read();
               while (i != -1)
                  {
                   byteArrayOutputStream.write(i);
                   i = inputStream.read();
                  }
                  inputStream.close();
              } catch (IOException e) {
                  return null;
              }
                 return byteArrayOutputStream.toString();
     }

HTML和XML是相同的基本语言,我不相信您可以将HTML存储在字符串中,为什么不保存HTML页面并将其与应用程序打包


在res>raw中将页面另存为html页面,然后调用此方法

 String html = Utils.readRawTextFile(ctx, R.raw.rawhtml);

 public static String readRawTextFile(Context ctx, int resId)
     {
          InputStream inputStream = ctx.getResources().openRawResource(resId);

             ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

             int i;
              try {
               i = inputStream.read();
               while (i != -1)
                  {
                   byteArrayOutputStream.write(i);
                   i = inputStream.read();
                  }
                  inputStream.close();
              } catch (IOException e) {
                  return null;
              }
                 return byteArrayOutputStream.toString();
     }


“有些错误。”没有太大帮助。它在CDATA中吗?为什么不将字符串放在资产文件夹中的文件中?@gabi,我该怎么做?在文本文件中,如何打开它?AssetFileDescriptor descriptor=getAssets().openFd(“myfile.txt”);FileReader=newFileReader(descriptor.getFileDescriptor());谢谢@gabi,但是如何处理文件读取器?“一些错误。”没有太大帮助。它在CDATA中吗?为什么不将字符串放在资产文件夹中的文件中?@gabi,我该怎么做?在文本文件中,如何打开它?AssetFileDescriptor descriptor=getAssets().openFd(“myfile.txt”);FileReader=newFileReader(descriptor.getFileDescriptor());谢谢@gabi,但是如何处理文件读取器?谢谢,但是如何解释在局部变量中使用它时没有错误?局部变量中不会有错误,就像在JAVA代码中一样。。你不需要转义单引号,但你必须在XML中转义。如果他有一个巨大的字符串,这将如何工作?你不应该只保存html页面吗?如果你要这样做,那么使用find and replace find@和replace with\@将是waaay fastrAlso html包含类似于/>的内容,这些内容在xml中不起作用,因为它将作为结束。谢谢,但是如何解释在局部变量中使用它时没有错误呢?在局部变量中不会有错误,就像在JAVA代码中一样。。你不需要转义单引号,但你必须在XML中转义。如果他有一个巨大的字符串,这将如何工作?你不应该只保存html页面吗?如果你要使用find and replace find@和replace\@的话,那么waaay fastrAlso html包含的东西像/>这样在xml中不起作用,因为它将作为一个结尾。谢谢@SmartLemon,我该怎么做呢,我该怎么做呢亲爱的:D,我得自己用了:P