В Android я не уверен, что вполне понимаю R класс. Я просматриваю пример с судоку, и у меня есть этот фрагмент кода:
switch (v.getId()) // the id of the argument passed is evaluated by switch statement { case R.id.about_button: // Intenti=newIntent(this, about.class); startActivity(i); break; // More buttons go here (if any) ... }
Я совершенно новичок в Java, но из того, что я понял, похоже, что он принимает входные данные (нажатие кнопки на сенсорном экране) и оценивает аргумент. Затем устанавливается оператор case, если распознана кнопка about, и создается новый экран интерфейса, к которому затем осуществляется навигация на телефоне.
Это правильно?
Если я правильно понял суть этого, почему дело в классе "R"?
Почему он вызывается для распознавания идентификатора кнопки?
Я думал, что суперклассом (в этом проекте) был класс SudokuActivity .
Переведено автоматически
Ответ 1
R.java это динамически генерируемый класс, созданный в процессе сборки для динамической идентификации всех ресурсов (от строк до виджетов Android и макетов) для использования в классах java в приложении Android. Обратите внимание, что это R.java специфично для Android (хотя вы можете дублировать его для других платформ, это очень удобно), поэтому оно не имеет большого отношения к конструкциям языка Java. Взгляните сюда, для получения более подробной информации.
Ответ 2
R это класс, который содержит ТОЛЬКО общедоступные константы. (public static final).
Это сгенерированный класс (плагином Android в Eclipse), который отражает различные значения, определенные вами в res файле.
Например, у вас должно быть что-то вроде:
android:id="@+id/about_button"
где-то в одном из ваших XML-файлов макета / меню в проекте, и как только вы это напишете, Eclipse сгенерирует константу в файле R (который вы можете найти в разделе gen/PACKAGE/R.java)
R Класс генерируется инструментами Android из ваших ресурсов перед компиляцией вашего кода. Он содержит присвоенную числовую константу для каждого ресурса, на который вы можете ссылаться в своем проекте. Например, у вас есть файл ресурсов XML, который содержит about_button. Если бы у вас не было R класса, вам пришлось бы использовать строку "about_button" для ссылки на него в коде. Если вы допустите ошибку в этой строке, вы узнаете об этом только при запуске своего приложения. С R вы увидите ошибку намного раньше во время компиляции.
R структурирован таким образом, что вы можете обращаться к ресурсам через его внутренние классы. Например, R.id содержит константы id и R.layout содержит константы layout .