一箫一剑平生意,负尽狂名十五年。这篇文章主要讲述Android 笔记之 R 文件相关的知识,希望能为你提供帮助。
h2 { color: #4abcde }
a { color: blue;
text-decoration: none }
a:hover { color: red;
text-decoration: underline }
pre { border: solid 1px #CCCCCC;
background-color: #F8F8F8;
overflow: auto;
font-size: 15px;
font-family: consolas, courier, monospace;
line-height: 20px;
padding: 6px 10px }
.pSkip { text-align: right }
阅读目录
- 介绍 R 文件的内容
- 介绍 通过 R 文件引用资源
一、R 文件的内容在 android Studio 中 R 文件位于 app -> build -> generated -> source -> r -> debug -> 包名 -> R
要注意几点:
- R 文件的本质是一个 java 文件,文件为 R.java
- 该文件其实就是一个 public final class R{} 类,该类里面包含的全是以 public static final 开头的内部类,在这些内部类中全是以 public static final int 开头的属性
- 在 Android Studio 中打开 R.java 文件,然后按 Ctrl + Shift + 减号键,可以看到 R.java 的总体内容
public final class R{ //全是以 publi static final 开头的内部类 ... public static final class layout{...} public static final class id{...} public static final class drawable{...} public static final class mipmap{...} public static final class color{...} public static final class string{...} public static final class style{...} ... }
内部类 id 里面的内容(下面省略了部分代码):
public static final class id{ //全是以 public static final int 开头的属性 ... public static final int button_1="0x7f070022"; public static final int button_2="0x7f070023"; public static final int button_3="0x7f070024"; ... }
[ 返回顶部 ]
二、通过 R 文件引用资源 在 xml 文件中引用资源
- @[package:]type/name,其中 package 表示包名,如果在同一个包内引用,则不需要写包名,例如:@style/AppTheme
- @android:type/name,其中 android 表示引用 android 系统内部资源
- R.type.name,例如:R.layout.first_layout ,R.id.button_1
- android.R.type.name,其中 android 表示引用 android 系统内部资源
在 java 文件中引用资源时,直接对 R.java 文件中的内容进行调用,例如:R.id.button_1,表示调用 R 这个类下面的 id 这个内部类中的 button_1 属性
在 xml 文件中 @ 符号表示调用 R.java 文件中的资源,举个例子:@style/AppTheme 中的 @ 符号可以理解为 R这个类,而 style 表示 R 类中的 style 内部类,AppTheme 表示,style 内部类中的 AppTheme 属性
【Android 笔记之 R 文件】[ 返回顶部 ]
推荐阅读
- java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedV
- 7.应用程序和App特性
- android非法字符的判定表情符号的判定
- Spring MVC的handlermapping之BeanNameUrlHandlerMapping初始化
- Android播放音频MediaPlayer的几种方式介绍
- MyBatis官方教程及源代码解析——mapper映射文件
- mybatis的面试一对一,一对多,多对多的mapper.xml配置
- No mapping found for HTTP request with URI [/Portal/download] in DispatcherServlet with name 'sp
- Neo4j CQL函数和数据类型