Java 了解Android中的R类

Java 了解Android中的R类,java,android,Java,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; // M

在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”类

为什么调用它来识别按钮的ID


我认为超级类(在这个项目中)是SudokuActivity类

R
是一个只包含公共常量的类。(公开静态决赛)

它是一个生成的类(由Eclipse中的Android插件生成),反映了您在
res
文件中定义的各种值

例如,您应该有如下内容:

android:id="@+id/about_button"
在项目中某个布局/菜单xml文件中的某个地方,一旦编写了该文件,Eclipse将在R文件中生成一个常量(您可以在
gen/PACKAGE/R.java
下找到该常量)


有关这方面的更多信息,请阅读

R.java
是动态生成的类,在构建过程中创建,用于动态标识所有资产(从字符串到android小部件到布局),以便在android应用程序的java类中使用。请注意,这个
R.java
是特定于Android的(尽管您可以在其他平台上复制它,这非常方便),因此它与java语言构造没有太多关系。查看,了解更多详细信息。

R
类是由Android工具在编译代码之前从您的资源中生成的。它包含可在项目中引用的每个资源的指定数值常量。例如,您有一个XML资源文件,其中包含
about\u按钮
。如果您没有
R
类,则必须使用字符串“about_button”在代码中引用它。如果您在该字符串中出错,则只有在运行应用程序时才能了解它。使用
R
可以在编译时更早地看到错误


R
的结构使您可以通过其内部类引用资源。例如,
R.id
包含id常量,
R.layout
包含布局常量

有关于如何复制其他项目的
R.java
构建过程的资源吗?R类是由aapt生成的吗?