Could anyone please explain why having hard-coded strings is so bad? What issues should I expect if I hardcode strings? Why having a separate string xml file solves those issues?
Creating new elements in strings.xml is such a time consuming activity.
A string resource provides text strings for your application with optional text styling and formatting. There are three types of resources that can provide your application with strings: String. XML resource that provides a single string.
xml , you can easily translate your whole app into other languages. This saves you a lot of work instead of doing this the hardcoded way: Android automatically selects the correct language based on user preferences, and you don't have to worry about selecting and displaying this language.
xml because android uses that XML to enable translating your app into different languages, which it can't do with strings that are hardcoded. As you build your apps, remember not to hard code any string. Instead declare all of your strings as resources in a default strings.
You use this xml-file to add new contents ( Views ) to your Activity . So the activity_main. xml determines how the Activity ( MainActivity in this case) should look. It determines its design.
When adding your strings to strings.xml
, you can easily translate your whole app into other languages.
So in the folder values
you would have strings.xml
with this content:
<string name="hello">Hello</string>
In values-fr
a strings.xml
with this content:
<string name="hello">Bonjour</string>
This saves you a lot of work instead of doing this the hardcoded way: Android automatically selects the correct language based on user preferences, and you don't have to worry about selecting and displaying this language.
Please also read Localization | Android Developers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With