Проблемы с папкой res и R.java - PullRequest
1 голос
/ 22 марта 2011

Я делаю учебные пособия и нахожусь в разделе об изображениях.Там написано положить их в папку res / drawable.Но у меня нет этой папки, у меня есть три вместо: res/drawable-hdpi, r es/drawable-ldpi и res/drawable-mdpi.Так в чем же разница между ними?

Я использую этот учебник.

Один из шагов:

Создайте файл strings.xml в res / values ​​/ и отредактируйте файл, чтобы он выглядел как

Там уже естьstrings.xml в сочетании с вышесказанным говорит мне об использовании res / drawable, устарели ли эти учебники?

Этот учебник имеет такой код:

R.id.spinner
R.array.planets_array

R.layout isпросто простое перечисление.Использует main.xml в папке макета.Но откуда взяться R.id и R.array.Потому что оно появляется в затмении, говоря, что не знает, кто они.R.java обновляется автоматически, поэтому кто-то может подсказать мне, прочитав ту инструкцию, где id добавляется в R?Он говорит, что

Идентификатор R.array.planets_array ссылается на массив строк, определенный выше

Только это не работает.Я сомневаюсь, что это имеет значение, что я не сделал strings.xml, так как это то же имя файла в том же месте.Но поскольку R.java предназначен для автоматического обновления, я не знаю, как это исправить.

Ответы [ 3 ]

1 голос
/ 22 марта 2011

Точно так же вы знаете, откуда берется материал R.

Файл R.java - это сгенерированный файл, который содержит какие-то указатели на ресурс в вашем приложении.На самом деле это простое целое число, которое однозначно идентифицирует ресурс во внутренней системе управления ресурсами Android.

R.string идентификаторы генерируются из XML-файлов ресурсов, например, таких как этот.

<resources>
    <string name="test">This is a test string.</string>
</resources>

R.array идентификаторы из строкового массива XML-файлов.

<resources>
    <string-array name="days_of_week">
        <item>Monday</item>
        <item>Tuesday</item>
        <item>Wednesday</item>
        <item>Thursday</item>
        <item>Friday</item>
        <item>Saturday</item>
        <item>Sunday</item>
    </string-array>
</resources>

Теперь вы можете получить доступ к этому массиву, используя его идентификатор R.id.days_of_week.

R.id идентификаторы немного особенные.

Они генерируются двумя способами.Первый - когда вы определяете View в файле макета XML с использованием синтаксиса @+id/....Обратите внимание на знак +.

Другой способ - определить их в ресурсных XML-файлах, например, в строках.

<resources>
    <item type="id" name="first" />
    <item type="id" name="second" />
</resources>

Затем вы просто используете их в XML-файле макета.как это @id/first.Обратите внимание, что нет + знак больше, когда вы ссылаетесь на него, прежде чем объявить его.

В коде вы затем используете его так, R.id.first.

Есть много других ресурсов.Я хотел бы указать вам на статью Прикладные ресурсы , а также обязательно ознакомиться с подпунктом Типы ресурсов .

1 голос
/ 22 марта 2011

Это для разных разрешений экрана для ряда устройств, которые там есть.Читайте о поддержке нескольких экранов на сайте разработчика Android.

0 голосов
/ 22 марта 2011

Если у вас нет папки, просто создайте ее.В основном это запасной вариант для случая, когда у вас нет ресурса в более конкретной папке, такой как res / drawable-hdpi

Папки * -xx позволяют вам предоставлять более конкретные рисованные объекты (изображения) для различныхразрешение экрана.

Тот же принцип применяется к значениям / и значениям-xx /, где xx - код страны;версии xx позволяют вам переводить сообщения интерфейса пользователя.

...