Понять класс 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, но из того, что я собираю, похоже, что он принимает ввод (сенсорный экран прикасается к кнопке) и оценивает аргумент. Затем оператор case настраивается, если кнопка about распознается, и создается новый экран интерфейса, а затем переходит на телефон.

это верно?

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

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

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

3 58

3 ответа:

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

R - это класс, который содержит только общедоступные константы. (публичный статический финал).

это сгенерированный класс (с помощью плагина Android в Eclipse), который отражает различные значения, определенные в .

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

android:id="@+id/about_button"

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

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

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

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