2017-08-15 33 views
0

只要我拖/放從調色板按鈕到XML文件中,Android的工作室給了我下面的錯誤,當我點擊「顯示警告和錯誤」:爲什麼Android Studio會給我警告添加Android Studio已經自動添加的代碼?

Message: [I18N] Hardcoded string "Button", should use `@string` resource Suggested Fixes: 
- Extract string resource 
- Suppress: Add tools:ignore="HardcodedText" attribute 

裏面文字的按鈕代碼以下的Android影城自動進入本身,當我拖/下降到按鈕的XML文件:

android:text="Button" 

難道我總是要點擊「禁止」的選擇,因爲我不知道他們要我改變什麼「提取字符串資源「選擇。還是它要求我更改自動設置自身的Android Studio代碼?

+0

我不再擔心這個問題,因爲不使用拖放式圖形用戶界面創建器 - 它是關於在Android中工作效率最低的方法。學習它背後的XML語言並以簡單的XML編寫您的UI,您將減少錯誤並更快完成任務。 –

回答

2

你可以做到這一點,而不是抑制:

  1. res/values/strings.xml添加一個字符串資源:

    <string name="button_label">Button</string>

  2. 將上述資源爲文本您Button

    android:text="@string/button_label"

+1

爲什麼Android Studio不會自動添加正確的代碼而不是錯誤的代碼? – iBEK

+1

我不確定背後的實際原因。他們會錯過它。但是,當您創建新項目時,'Hello World'文本位於strings.xml文件中。其實這是不對還是錯。將字符串放入strings.xml文件是一種最佳做法。因此,您可以在多個佈局中重複使用相同的字符串,並且需要將您的應用本地化爲多語言。否則,兩種方式都可以毫無問題地工作。 – Bob

+0

「Hello World」不在strings.xml文件中。我只有我在strings.xml文件中給出的文件的名稱。 – iBEK

0

這不是一個錯誤,這只是警告說,你應該使用字符串資源,但不是代碼中的硬編碼字符串。但是你可以使用hadrdcoded字符串,並且都可以正常工作。
使用字符串資源可以簡化您的生活。例如,當你想本地化您的應用程序。看截圖。 using string resources 您可以設置字符串res。到TextView.Text,然後創建名稱爲values, values-ru, values-uk等的android resource directories。 在這個direcroties中,您應該爲每個文件創建文件strings.xml。 和覆蓋你在values-ru

,如果你改變你的設備的語言,從恩茹,在你的應用程序中textView現在串像

<string name="message"> Message </string>values
<string name="message"> Сообщение </string>將被寫入"Сообщение"

這在其他幾種情況下也是有用的。

0

消息:[I18N]硬編碼字符串 「按鈕」,應使用@string 資源

建議的修復:

  • 提取字符串資源

你應該總是挑字符串從string.xmlres/values/strings.xml。這不是硬編碼字符串的正確方法,將其放入字符串中。xml文件將來有助於本地化

  • 添加工具:忽略=「HardcodedText」屬性

當您使用的工具,它實際上並沒有設定查看文本,但它只是說明你在預覽窗口中,因爲它是如何以可視方式顯示,當你運行應用程序時,你不會在工具中添加文本。

相關問題