R.layout.activity\u main在android开发中的意义(JAVA语言)

R.layout.activity\u main在android开发中的意义(JAVA语言),java,android,Java,Android,R.layout.activity\u main的含义是什么 我知道“.”运算符用于定义特定对象的变量,但在本例中,它被使用了两次,所以我无法从中得出任何结论。“R”和“布局”到底是什么 我的意思是很明显它们是类(对吗?),但它们的功能是什么?基本上解释R.layout.activity\u main 如果问题太模糊或太宽泛,请发表评论 R是一个自动生成的类,描述项目的资源。它包含静态内部类布局就是其中之一。layout指的是名为layout的内部类activity\u main是Android

R.layout.activity\u main的含义是什么

我知道“.”运算符用于定义特定对象的变量,但在本例中,它被使用了两次,所以我无法从中得出任何结论。“R”和“布局”到底是什么

我的意思是很明显它们是类(对吗?),但它们的功能是什么?基本上解释R.layout.activity\u main


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

R
是一个自动生成的类,描述项目的资源。它包含静态内部类<代码>布局就是其中之一。layout指的是名为layout的内部类
activity\u main
是Android
R
中类
layout

public static final
成员,是一个Java类,通过构建过程从您的资源中自动生成

R.layout
成员是一个自动生成的类,包含布局的所有ID


R.layout.activity_main
是一个
静态final int
成员,表示
layout/activity_main.xml

中布局文件的ID,因此R是一个生成的类。如果你够幸运的话,你就永远不会看到它,也不必去碰它,否则你就做错了

当你做一个布局,或者对布局做任何更改时,Android Studio会为你生成很多文件。这包括一个R.java文件。下面是R.java类的一部分:

public final class R {
    public static final class anim {
        public static final int abc_fade_in = 0x7f050000;
        public static final int abc_fade_out = 0x7f050001;
        public static final int abc_grow_fade_in_from_bottom = 0x7f050002;
        public static final int abc_popup_enter = 0x7f050003;
        public static final int abc_popup_exit = 0x7f050004;
        public static final int abc_shrink_fade_out_from_bottom = 0x7f050005;
        public static final int abc_slide_in_bottom = 0x7f050006;
        public static final int abc_slide_in_top = 0x7f050007;
        public static final int abc_slide_out_bottom = 0x7f050008;
        public static final int abc_slide_out_top = 0x7f050009;
    }
    public static final class attr {
        public static final int actionBarDivider = 0x7f010062;
        public static final int actionBarItemBackground = 0x7f010063;
        public static final int actionBarPopupTheme = 0x7f01005c;
        public static final int actionBarSize = 0x7f010061;
        public static final int actionBarSplitStyle = 0x7f01005e;
        public static final int actionBarStyle = 0x7f01005d;
        public static final int actionBarTabBarStyle = 0x7f010058;
        public static final int actionBarTabStyle = 0x7f010057;
        public static final int actionBarTabTextStyle = 0x7f010059;
如你所见,在这种情况下,如果我输入

R.anim.abc_fade_in
我将选择值0x7f050000;。 每个布局文件都映射到这个R文件中,并获得一个ID,安卓通过该ID识别它。布局位于R布局中。因此,R.layout.activity_main获取类R的类布局的变量activity_main的值

同样,不要尝试查找或更改生成的R文件。如果你那样做,事情可能会变得非常糟糕。

来自

R是一个类,包含特定应用程序包的所有资源的定义。它位于应用程序包的命名空间中

如果要在activity类中展开布局,可以使用R.layout.activity\u main,其中layout指定资源为布局,其名称为activity\u main

如果要在活动类内的布局中使用可绘制图像,可以使用R.drawable.image\u name,其中drawable指定资源为可绘制图像


另外,R.java类是一个自动生成的类,不应手动更改。

R.java
是一个类(带有内部类,如
layout
string
),在构建过程中生成,并引用应用程序的资源。您创建的每个资源(或Android提供的资源)都由
R
中的一个整数引用,称为资源id

R.layout.
引用您创建的任何版面资源,通常在
/res/layout
中。因此,如果您创建了一个名为
activity\u main.xml
的活动布局,那么您可以使用
R.layout.activity\u main
中的引用来访问它。许多内置功能很容易接受这样的资源id,例如,您在创建活动期间使用的资源id,以及您可能遇到此特定示例的地方

如果您创建一个字符串资源(在strings.xml中),如下所示:

<string name="app_name">Application name</string>
或者在代码中:
textview.setText(R.string.app\u name)

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

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

我希望这有点帮助。有关资源的更多信息,请参阅。

相关帖子-&
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/app_name"
    />