了解安卓系统中的 R 类

2022-08-31 13:26:05

在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的新手,但从我收集到的信息来看,它看起来像是在接受输入(触摸屏被触摸到按钮上)并评估参数。然后,如果识别出“关于”按钮,则设置 case 语句,并创建新的界面屏幕,然后在手机上导航到该屏幕。

这是对的吗?

如果我正确地理解了这一点的要点,为什么与“R”类进行交易?

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

我认为超级类(在这个项目中)是数独活动类。


答案 1

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


答案 2

R是一个仅包含公共常量的类。(公共静态最终版)。

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

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

android:id="@+id/about_button"

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

有关这方面的详细信息,请阅读 Android 开发人员中的资源指南


推荐