2015-12-09 197 views
1

現在我在Android字符串資源中遇到了%的疑問。問題如下:android資源字符串%

如果我想在其他語言中使用%符號,例如中文。我必須在/values-zh-rCN/strings.xml中添加資源字符串formatted =「false」。

是的,字符串標記必須具有其格式化的屬性。

但是,它無法在英文語言的/values/strings.xml中添加此格式的屬性。它編譯成功,並且運行良好。

爲什麼?

我在android開發人員網站找不到任何答案。

ps:我如何在stackoverflow編輯器中編寫角括號。我是一名新生。

Java代碼:

autoDownloadLayout.findViewById(R.id.setItemContent)).setText(R.string.setting_auto_update_title_1_subtitle); 

/values/strings.xml:

<string name="setting_auto_update_title_1_subtitle">Automatically download updates when connected to Wi-Fi, when the battery level is greater than 30% and CPU usage is less than 50%</string> 

/values-zh-rCN/strings.xml:

<string formatted="false" name="setting_auto_update_title_1_subtitle">"僅在 WLAN 網絡,手機電量高於 30% 且 CPU 佔用率低於 50% 時,預先下載遊戲更新包"</string> 
+0

請發佈與您的問題相關的xml(和Java代碼)。 –

+0

如果你在你的屬性文件: '''<字符串名稱= 「age_message」>我的年齡爲%s''' 你可以使用這樣的事情: '''的String.format(getResources ().getString(R.string.age_message),「29」)'''。結果將是'''我的年齡是29''' –

+0

你可以通過用重音符號('\'')圍繞它們來直接寫入尖括號。您可以通過縮進至少四個空格來編寫代碼塊。 –

回答

0

看來,Android的與默認字符串相比,Lint在檢查翻譯後的字符串時有不同的想法。關於此問題有一個公開的問題(Issue 74959)(儘管這不完全是你的問題)。在技​​術上看來,您應該在/values以及/values-zh-rCN中的字符串中添加formatted="false"

或者,您可以將所有字面百分號標記爲&#37;(或&#x25;)。這可能是最簡單(也是風險最小)的方法。

+0

謝謝!你解決了我的問題。 – zhangfeng32