Понять класс R в Android

В Android я не уверен, что я понимаю R учебный класс. Я иду через пример судоку, и у меня есть этот фрагмент кода:

switch (v.getId()) // the id of the argument passed is evaluated by switch statement
{
    case R.id.about_button: // 
    Intent i = new Intent(this, about.class);
    startActivity(i);
    break;
    // More buttons go here (if any) ...
}

Я новичок в Java, но из того, что я понял, похоже, что он принимает данные (сенсорный экран при нажатии кнопки) и оценивает аргумент. Затем устанавливается регистр, если распознается кнопка "о", и создается новый экран интерфейса, а затем осуществляется переход по телефону.

Это правильно?

Если я понял суть этого правильно, почему сделка с классом "R"?

Почему он вызывается для распознавания идентификатора кнопки?

Я думал, что суперкласс (в этом проекте) был классом SudokuActivity.

3 ответа

Решение

R.java это динамически генерируемый класс, созданный в процессе сборки для динамической идентификации всех активов (от строк до виджетов Android и макетов), для использования в классах Java в приложении Android. Обратите внимание на это R.java специфичен для Android (хотя вы можете дублировать его для других платформ, это очень удобно), поэтому он не имеет ничего общего с языковыми конструкциями Java. Посмотрите здесь, для более подробной информации.

R это класс, который содержит ТОЛЬКО публичные константы. (публичный статический финал).

Это сгенерированный класс (от Android Plugin в Eclipse), который отражает различные значения, которые вы определили в res файл.

Например, у вас должно быть что-то вроде:

android:id="@+id/about_button"

где-нибудь в одном из вашего XML-файла макета / меню в проекте, и как только вы это написали, Eclipse сгенерирует константу в файле R (которую вы можете найти в gen/PACKAGE/R.java)

Прочтите руководство по ресурсам в Android Developer для получения дополнительной информации об этом.

R класс генерируется инструментами Android из ваших ресурсов перед компиляцией кода. Он содержит назначенную числовую константу для каждого ресурса, на который вы можете ссылаться в своем проекте. Например, у вас есть файл ресурсов XML, который содержит about_button, Если у вас не было R класс, вы должны будете использовать строку about_button для ссылки на него в коде. Если вы допустите ошибку в этой строке, вы узнаете об этом только при запуске приложения. С R вы увидите ошибку намного раньше во время компиляции.

R структурирован таким образом, что вы можете обращаться к ресурсам через его внутренние классы. Например, R.id содержит константы id и R.layout содержит константы макета.

Другие вопросы по тегам