Resources. Строковые ресурсы

| 31.03.2014

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
</RelativeLayout>

Как видим, в качестве значения для текста помещена ссылка на текстовый ресурс:

1
android:text="@string/hello_world"

Сам ресурс находится в файле res/values/strings.xml:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Test App</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
</resources>

Можно добавить массив строк (array) как строковый ресурс:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Test App</string>
    <string name="action_settings">Settings</string>
    <string-array name="persons_name">
        <item>Lion</item>
        <item>Fish</item>
        <item>Cat</item>
        <item>Dog</item>
        <item>Snake</item>
    </string-array>
</resources>

Этот подход удобен по двум причинам:

1. Если одна и та же строка используется в нескольких файлах компоновки, то благодаря использованию ссылки на текстовый ресурс в дальнейшем правку нужно будет делать только в одном файле (если, например, вы захотели изменить текст какого-то заголовка).

2. Создание отдельных файлов с текстовыми значениями удобно и для локализации приложения на несколько языков. Все, что нужно будет сделать — это создать отдельный файл с переводом, к примеру, на французский язык, и создать для него отдельную директорию res/values-fr.

При именовании строковых ресурсов необходимо придерживаться нескольких правил:

- название строкового ресурса должно состоять из строчных букв
- в случае, если название состоит из двух или трех слов, то их рекомендуется разделять нижним подчеркиванием
- в названиях рекомендуется использовать только латиницу

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*