R.layout.activity_main的含义是什么?
我理解“。”运算符用于定义特定对象的变量,但在本例中,它被使用了两次,因此我无法从中提取任何内容。还有,"R“和”布局“究竟是什么?
我的意思是,很明显,它们是类的(对吗?)但它们的功能是什么呢?基本上解释一下R.layout.activity_main!
如果问题太含糊或太宽泛,请发表评论。
发布于 2015-09-18 10:43:09
R.java
是在构建过程中生成的类(包括内部类,如layout
或string
),其中引用了应用程序的资源。您创建的每个资源(或由Android提供的资源)都由R
中的一个名为资源id的整数引用。
R.layout.*
引用您创建的任何布局资源,通常在/res/layout
中。因此,如果您创建了一个名为activity_main.xml
的活动布局,那么您可以使用R.layout.activity_main
中的引用来访问它。许多内置功能都很容易接受这样的资源id,例如您在创建活动时使用的setContentView(int layoutResid)
,以及您可能遇到这个特定示例的地方。
如果您创建一个字符串资源(在strings.xml中),如下所示:
<string name="app_name">Application name</string>
它将在R.string.app_name
中获得一个新的参考。然后,在接受字符串资源的情况下,您可以在任何地方使用android:label
,例如AndroidManifest.xml
中的应用程序的TextView,或者TextView中的TextView:
<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)
在您的活动中获得上面描述的应用程序名。
您还可以为不同的设备属性/设置(如屏幕大小或语言)提供不同的资源,您可以使用R
中的相同引用访问这些资源。这里最简单的示例是字符串:如果您在/res
中添加了一个新的/res
文件夹,其中包含一个语言说明符(所以是/res/values-nl
,用于荷兰语),然后添加具有相同标识符但翻译不同的字符串,那么资源管理系统将根据用户的设备巧妙地确定为您提供的字符串。
我希望这能帮点忙。有关资源的更多信息,请参见文档。
发布于 2015-09-18 10:15:06
R
是一个自动生成的类,它描述项目的资源.它包含静态的内部类。layout
就是其中之一。R.layout指的是称为布局的内部类。activity_main
是类layout
的public static final
成员。
发布于 2015-09-18 10:15:52
在Android中,R
是一个Java类,它是通过构建过程从资源中自动生成的。
R.layout
成员是一个自动生成的类,包含用于布局的所有ID。
R.layout.activity_main
是一个static final int
成员,它表示layout/activity_main.xml
中布局文件的ID。
https://stackoverflow.com/questions/32649447
复制相似问题