在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
包含布局常量。