Я новичок в Android и играю с некоторыми кодами Hello World. Я заметил, что андроид помещает каждый ресурс, например изображение, строку и т.д. в папку res
, и мы обращаемся к нему как @drawable/icon
, т.е. icon
изображение в папке с возможностью переноса или например R.layout.main
, что означает main.xml
внутри layout
.
Но при доступе к строкам мы используем @string/string_name
, но мы не укажем его имя родительской папки i.e. values
. Почему синтаксис отличается для strings
?
Это может показаться глупым, но это заставляет задуматься и задать этот вопрос.
Все ресурсы одного типа в android находятся в плоской иерархии. Вы не указываете имя каталога, а вместо этого тип ресурса.
Даже если вы разделите все строки между разными файлами, я всегда буду @string/string_name
.
Хорошая вещь, которую вы можете сделать, чтобы создать некоторую структуру, - это сделать что-то похожее на это:
@string/error_network_io @string/error_network_unknown_host @string/message_save_successful ...