R.layout.activity_main在机器人开发中的意义(JAVA语言)

2022-09-04 06:29:56

R.layout.activity_main是什么意思?

我知道“.”运算符用于定义特定对象的变量,但在这种情况下,它被使用了两次,所以我无法从中做任何事情。另外,究竟什么是“R”和“布局”?

我的意思是,显然它们是类(对吧?),但它们的功能是什么?基本上解释R.layout.activity_main!

如果问题太模糊或太宽泛,请发表评论。


答案 1

R.java是在生成过程中生成的类(具有内部类,如 或 ),其中包含对应用资源的引用。您创建的每个资源(或由 Android 提供的资源)都由 中的整数引用,称为资源 ID。layoutstringR

R.layout.*引用已创建的任何布局资源,通常在 中。因此,如果创建了一个名为 的活动布局,则可以使用 中的引用来访问它。许多内置功能很容易接受这样的资源ID,例如setContentView(int layoutResid),您在创建活动期间使用它,并且您可能遇到过此特定示例。/res/layoutactivity_main.xmlR.layout.activity_main

如果创建字符串资源(字符串中.xml),如下所示:

<string name="app_name">Application name</string>

它将在 中得到一个新的引用。然后,您可以在接受字符串资源的任何位置使用它,例如,在 中或 TextView 上用于您的应用程序;在 xml 中任一项:R.string.app_nameandroid:labelAndroidManifest.xml

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/app_name"
    />

或在代码中:.textview.setText(R.string.app_name)

可以使用 Resources 类以编程方式访问资源,可以通过在任何上下文(如活动)上调用 getResources 来获取对该类的引用。因此,例如,您可以通过调用 来获取上述活动中描述的应用程序名称。this.getResources().getString(R.string.app_name)

您还可以为不同的设备属性/设置(如屏幕大小或语言)提供不同的资源,您可以使用 中的相同引用访问这些资源。恕我直言,这里最简单的例子是字符串:如果您使用语言说明符(荷兰语)添加一个新文件夹,并且您添加具有相同标识符但翻译不同的字符串,并且资源管理系统会根据用户的设备巧妙地找出要为您提供的字符串。Rvalues/res/res/values-nl

我希望这会有所帮助。有关资源的详细信息,请参阅文档


答案 2

R是一个自动生成的类,用于描述项目的资源。它包含静态内部类。 就是其中之一。R.layout 是指称为 layout 的内部类。 是该类的成员layoutactivity_mainpublic static finallayout


推荐