了解Android中的R类

Ski*_*izz 64 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;
    // More buttons go here (if any) ...
}
Run Code Online (Sandbox Code Playgroud)

我是Java的新手,但从我收集的内容看起来它正在接受输入(触摸屏触摸按钮)并评估参数.然后,如果识别出about按钮,则设置case语句,并创建新的界面屏幕,然后导航到手机上.

这是正确的吗?

如果我得到了正确的要点,为什么与"R"类交易呢?

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

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

ome*_*med 93

R.java是动态生成的类,在构建过程中创建,用于动态识别所有资产(从字符串到android小部件到布局),用于Android应用程序中的java类.请注意,这R.java是特定于Android的(虽然您可以将其复制到其他平台,非常方便),因此它与Java语言结构没有太大关系.看看这里,了解更多细节.


xan*_*ndy 40

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

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

例如,你应该有类似的东西:

android:id="@+id/about_button"
Run Code Online (Sandbox Code Playgroud)

在项目的某个布局/菜单xml文件中的某个位置,一旦你编写了它,Eclipse将在R文件中生成一个常量(你可以在它下面找到它gen/PACKAGE/R.java)

阅读Android开发者资源指南,了解有关此内容的更多信息.


Ale*_*man 21

R在编译代码之前,类是由您的资源中的Android工具生成的.它包含您可以在项目中引用的每个资源的已分配数字常量.例如,您具有包含的XML资源文件about_button.如果您没有R类,则必须使用字符串"about_button"在代码中引用它.如果您在此字符串中出错,则只有在运行应用程序时才能了解它.随着R你会更早地看到错误在编译时.

R以这样的方式构建,您可以通过其内部类来引用资源.例如,R.id包含id常量并R.layout包含布局常量.