Что не так с hardcoded string в файле android xml?

Мне нравится ставить простой текст непосредственно в xml файл, не объявляя сначала строку. Это проще, проще и менее беспорядочно. Тем не менее, он всегда имеет предупреждающий значок всякий раз, когда я это делаю.

Что делать, если у меня есть десятки жестко закодированных строк в моем XML файле без предупреждения? У меня возникнут проблемы?

заблаговременно.

Ответ 1

Нет, у вас не будет проблем, но использование @string/yourString в вашем xml будет хорошей практикой, а упростит поддержку нескольких языков.

Ответ 2

Когда вы используете жестко закодированные строки как в вашем java-коде, так и в файле xml, ваше приложение напрямую записывает эти строки в ОЗУ. Но когда вы объявляете их как строковые ресурсы, он не будет записан в ОЗУ при запуске приложения, но они записываются в ОЗУ, когда приложение должно их использовать. Вы можете объявить миллиарды строк в ресурсах, и у вас все еще может быть легкое приложение, поддерживающее RAM, поддерживающее RAM.

Ответ 3

С этим не будет никаких проблем. Но использование string.xml для размещения текста в вашем приложении считается хорошей практикой программирования. Потому что предположим, что вы хотите использовать один и тот же текст в нескольких местах вашего приложения. Трудно будет поместить текст каждый раз, когда будет жестко закодировано, особенно если текст несколько большой. Помещение текста в один файл означает, что у вас есть доступ к тому же тексту из любого места в вашем приложении.

Ответ 4

Ваша компания была просто выкуплена, и теперь вы можете прочитать тысячи строк кода и сменить старое имя на новое, потому что у кого-то жестко закодированные строки. Вы хотите интернационализировать свой код, так что он говорит по-испански easy.just, создайте новый strings.xml, просто назовите его strings_es.xml. Сам телефон настроен. Испанский, конечно, вы бы перекрещивались, но вы закончили. Я не могу прочитать строки, вызывающие это телефон настолько крошечный, может быть, вы могли бы дать короткие описания для небольших телефонов. Читайте на mvc удачи.

Ответ 5

Нечего беспокоиться об этих предупреждениях. Возможно, разработчик Android решил, что это не очень хорошая практика. Но если ваше приложение может поддерживать несколько языков в один прекрасный день, использование @string/mystring - лучшая практика.

Ответ 6

Это относится к некоторым комментариям относительно производительности (@PankajKumar, @TechEnd, @Ken Y-N):

Согласно документации Google, "String - это скомпилированный ресурсный тип данных: указатель ресурса на строку". (Ссылка: http://developer.android.com/guide/topics/resources/string-resource.html#String)

Итак, я думаю, что это увеличит производительность за счет уменьшения объема памяти, хотя разница может быть не заметна.

Это связано с тем, что при объявлении строки в файле XML поддерживается указатель на этот ресурс. Всякий раз, когда нам нужно снова использовать этот ресурс в другом месте, мы просто получаем указатель на существующую строку, тем самым сохраняя память при распределении новой памяти для той же строки. Это отличается от использования жестко закодированных строк, для которых память будет выделяться каждый раз для одного и того же ресурса String.

Надеюсь, это поможет. Комментарии приветствуются.

С уважением, ММ. ​​