2012-04-13 59 views
0

我的應用程序中有一個非常大的HTML字符串。android:在strings.xml中聲明巨大的字符串

當我在代碼中使用它時,一切都很好,但是當我嘗試在strings.xml中聲明它時,出現了一些錯誤。有沒有辦法在strings.xml中製作一個簡單的字符串副本?謝謝

+1

「了一些錯誤。」不是非常有幫助。它在CDATA中嗎? – 2012-04-13 11:56:48

+0

爲什麼不把字符串放在assets文件夾中的文件中? – 2012-04-13 11:59:20

+0

@gabi,我該怎麼做?在文本文件中,如何打開它呢? – 2012-04-13 12:00:56

回答

4

HTML和XML是相同的基本語言,我不相信您可以將HTML存儲在字符串中,爲什麼不保存HTML頁面並將其與應用程序打包?


將頁面保存爲在res 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(); 
    } 
+0

謝謝@SmartLemon,我怎麼能做到這一點 – 2012-04-13 11:59:59

+0

這應該工作 – FabianCook 2012-04-14 01:25:30

+0

偉大@SmartLemon,它的工作原理是這樣的... – 2012-04-16 11:38:20

1

錯誤可能會在特殊字符,如@double quotesingle quote等來克服它前綴\它和你的錯誤提示,如果您分配相同的字符串編程也有,你會發現同樣的問題解決

String mString= "your huge string with @ error"; 
在此

也是你必須克服被前綴反斜槓

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

謝謝,但是如何解釋在局部變量中使用它時沒有錯誤? – 2012-04-13 11:59:09

+0

在本地變量中不會有錯誤,就像在JAVA代碼中一樣..你不需要轉義單引號,但是你必須用XML來完成。 – amithgc 2012-04-13 12:01:52

+0

謝謝,我會盡力檢查這個.... – 2012-04-13 12:05:48