在Android中了解R类

在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新手,但是从我收集的内容看来,它正在接受input(触摸屏上的触摸屏)并评估参数。 然后,如果关于button被识别,则设置案例陈述,并且创build新的界面屏幕,然后导航到电话上。

这是正确的吗?

如果我有这个正确的要点,为什么要与“R”级的交易?

为什么它被称为识别button的ID?

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

R.java是dynamic生成的类,在构build过程中创build,用于dynamic识别所有资源(从string到Android小部件到布局),供Android应用程序中的Java类使用。 注意这个R.java是Android专用的(尽pipe你可能能够将它复制到其他平台上,非常方便),所以它与Java语言结构没有多大关系。 看看这里 ,了解更多细节。

R是只包含公共常量的类。 (公共静态最终)。

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

例如,你应该有这样的东西:

 android:id="@+id/about_button" 

在项目的布局/菜单xml文件中的一个地方,一旦你写了,Eclipse会在R文件中生成一个常量(你可以在gen/PACKAGE/R.java下find它)

请阅读Android开发者资源指南了解更多信息。

R类是在编译代码之前由您的资源中的Android工具生成的。 它包含您可以在项目中引用的每个资源的分配数字常量。 例如,您有包含about_button XML资源文件。 如果你没有R类,你将不得不使用一个string“about_button”在代码中引用它。 如果你在这个string中犯了一个错误,你只会在运行你的应用程序的时候才会知道它。 用R你会在编译时更早地看到错误。

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