关于Android应用开发的困惑

时间:2019-06-15 17:33:02

标签: android android-layout

我正在学习一个android开发课程,并且讲师创建了一个名为activity_youtube.xml的布局文件,并将ID命名为activity_youtube,然后在.java文件中为其编写了代码。

setContentView(R.layout.activity_youtube) ConstraintLayout constraintLayout = findViewById(R.id.activity_youtube)

我真的对这个命名约定感到困惑。

调用R.layout.activity_youtube时指的是什么,调用R.id.activity_youtube时指的是什么

2 个答案:

答案 0 :(得分:1)

调用 R.layout.activity_youtube 时,是指布局xml文件,因此要引用其中的所有内容。 当调用 R.id.activity_youtube 时,您所指的是文件中具有 id 属性的特定组件(布局,按钮,textView ...)分配给该名称。 我承认,调用布局可能有点误导。 xml文件及其布局组件相同。

答案 1 :(得分:1)

R 是Android中的公共最终类,它扩展了Object类。它纯粹是一种机制,可让您从代码中轻松引用资源层次结构的内容。因此,您无法创建子层次结构。

R.id 是在Android程序中创建的嵌套类文件,该文件也是自动生成的文件。 用于引用UI组件。让我们假设您的UI(R.laoyout.your_layout_name)中有两个按钮,您可以区分它们,并通过使用R.id.button1R.id.button2来确定单击每个按钮时要执行的操作。这些按钮位于您在活动中使用R.layout使用的布局文件中。

setContentView()设置要显示为主要内容视图的视图。该方法已重载,因此您可以传递View类的对象(或它的子类,例如LinearLayout,TextView等),也可以使用 R.layout.your_layoutname.xml < / strong>。

因此, R.layout. 引用您创建的任何布局资源,通常在/res/layout中。因此,如果您创建了一个名为activity_main.xml的活动布局,则可以使用R.layout.activity_main中的引用来访问它。