Комментарии 25
Хорошо бы расширить по теме локализации. Как работать с переводами
+1
НЛО прилетело и опубликовало эту надпись здесь
Работа со строковыми списками используется не часто и, когда используется, то уже опытными андроид разработчиками, для которых разобраться в них не составляет труда.
Здесь я перечислил те неточности и избыточность в коде, которые я изо дня в день встречаю при ревью кода тех людей, которые только начинают переходить на Android платформу.
Здесь я перечислил те неточности и избыточность в коде, которые я изо дня в день встречаю при ревью кода тех людей, которые только начинают переходить на Android платформу.
0
ИМХО, всё равно на отдельную статью не тянет. Опытный программер (не обязательно опытный Android-программер) при изучении платформы сразу подсечёт, как дяди в примерах хранят строки, и будет делать точно так же.
+1
А по моему не плохая статья. Во первых не все на хабре такие уже и опытные программеры сидят — тут вообще разный контенгент: вся IT сфера можно сказать. Во вторых о вкусах не спорят, но на мой взгляд полезная статья для новичков.
0
Не часто? Да банальнейший же активити настроек скорее всего потребует строковых списков. Так что не такая уж это и «опытная» тема
+1
Согласен. О Настройках забыл. Обычно проекты, которые попадают в руки, обходятся или вообще без них или ударяются в другую крайность и с помощью стандартных механизмов их Настройки реализовать не получается.
Если пойму, что можно о них написать, кроме как просто упомянуть, то добавлю эту информацию.
Если пойму, что можно о них написать, кроме как просто упомянуть, то добавлю эту информацию.
0
да я не думаю что прям нужен опытный разработчик, чтобы строковые списки использовать.
Вообще, конечно, для статьи скажем прямо — скудны материал. Я ожидал увидеть про многоязычные приложения, мне как раз это сейчас интересно. А тут просто про строки.
Вообще, конечно, для статьи скажем прямо — скудны материал. Я ожидал увидеть про многоязычные приложения, мне как раз это сейчас интересно. А тут просто про строки.
0
На самом деле, любая информативная и нормально написаная статья является полезной. Связано это с тем, что в мире действительно существуют люди, которые только начинают разбираться в андроид-разработке (что не делает их плохими) и с тем, что при разборе какой-то темы, разным людям могут быть более понятны различные подходы в изложении. Опять-таки, поисковики, да и хабр, были созданы не только для опытных программистов. Наконец, каждый в праве выбирать, что интересно читать именно ему и если это не нужно Пете, то не факт, что это не понадобится Васе.
Кроме всего вышесказанного, похвален уже сам факт, что человек нашел время и потрудился написать текст, который так или иначе может кому-то помочь.
Кроме всего вышесказанного, похвален уже сам факт, что человек нашел время и потрудился написать текст, который так или иначе может кому-то помочь.
0
ИМХО, было бы здорово рассказать собственно про класс Resources. В нем вся соль. И последний пример в статье не будет таким оторванным от реальности, если уж для новичков пишете.
А метод Context.getString() добавлен лишь как удобный метод.
А метод Context.getString() добавлен лишь как удобный метод.
0
С базовыми ресурсами вопросы возникают редко, а копать глубже — это нужно не часто. Подобная статья была бы полезной, но я не возьмусь.
0
Тогда зачем пишете int strId = getResources().getIdentifier(«score_correct», «string», getPackageName());
где getResources() как раз и возвращает искомый объект Resources, о котором в статье совсем не сказано.
А Вы лишь пользуетесь частным вариантом вызова из Context.
где getResources() как раз и возвращает искомый объект Resources, о котором в статье совсем не сказано.
А Вы лишь пользуетесь частным вариантом вызова из Context.
0
Такими темпами скоро в этот блог начнут писать посты вроде «как создать xml файл в Android проекте»
+8
> в одном файле храню все строки, которые надо будет переводить, во втором текстовые константы, которые я использую для передачи данных между различными Activity, в третьем храню константы, которые использую для составления запросов к веб серверу.
Зачем последние два пункта хранить в ресурсах? Почему не public final static? Строковые ресурсы все-таки нужны именно для хранения UI-строк, для всего остального вами перечисленного есть константы.
Зачем последние два пункта хранить в ресурсах? Почему не public final static? Строковые ресурсы все-таки нужны именно для хранения UI-строк, для всего остального вами перечисленного есть константы.
+3
Единое место для редактирования всех данных. Можно использовать константы в разных классах и разных пакетах, а можно использовать 3 отдельных файла в ресурсах. Тут важно, что удобно внутри команды. Для человека со стороны такой способ тоже больших сложностей не составит.
Как вариант, в разных файлах можно хранить отдельно строки для перевода и без перевода, если, к примеру, вы пишите англо-русский словарь.
Как вариант, в разных файлах можно хранить отдельно строки для перевода и без перевода, если, к примеру, вы пишите англо-русский словарь.
-1
Странное решение. Строковые ресурсы — это строковые ресурсы, а константы — это константы, как бы очевидно это не звучало. Назначение у них разное. На строковые ресурсы вы ссылаетесь из кода, layoutов и манифеста, для загрузки ресурсов нужен контекст, строковые ресурсы в конце концов может читать не только программист, а еще и переводчик. Ключи для extras или параметры запросов никому кроме разработчика не нужны, у них никогда не будет другого контекста, их никто кроме программистов никогда не увидит, их значения меняются крайне редко после первого релиза.
+2
Я бы еще поинтересовался оверхедом за счет обращения к ресурсам вместо использования констант. Не знаю, насколько он велик, но когда мне нужно часто использовать одну и ту же строку (например, как часть контента в элементах длинного списка), я предпочитаю сделать один запрос к ресурсу и сохранить результат (в том же случае списка — как член адаптера).
+1
А как добавить разрыв строки? Абзац?
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Работа со строковыми ресурсами Android