第04讲- Android项目目录结构分析
学习内容:
1. 认识R类(R.java)的作用
R.java是在建立项目时自动生成的,这个文件是只读模式,不能更改。R类中包含很多静态类,且静态类的名字都与res中的一个名字对应,即R类定义该项目所有资源的索引。
a.在代码中使用资源文件 具体格式为:R.资源文件类型.资源文件名称
例如,Java代码:
setContentView(R.layout.login_system); //设置Activity显示的布局视图
Button cancelBtn = (Button)findViewById(R.id.cancelButton); //获得Button实例
EditText userEditText = (EditText)findViewById(R.id.userEditText); // 获得TextView实例
另外,除了访问用户自己定义的资源文件,还可以访问系统中的资源文件。大部分的资源文件被定义在android包下的R类中。访问系统中的资源文件格式为:android.R.资源文件类型.资源文件名称
例如,Java代码:
int i ;
i = android.R.array.emailAddressTypes; // 数组
i = android.R.dimen.app_icon_size; // 尺寸
textview1.setText(R.string.msg); //定义<string name="msg">HelloJason!</string>
b.在其他资源文件中引用资源文件 具体格式为:”@资源文件类型/资源文件名称”
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/ msg " <!--引用了一个字符串来表示文本内容-->
android:textColor="@color/opaque_red" <!--引用了一个颜色来表示文本颜色-->
android:textSize="@dimen/sixteen_sp"/> <!--引用了一个尺寸来表示文本尺寸-->
2. 学习在activity中使用findViewById方法查找组件;
例如: TextView textview1 =(TextView) findViewById(R.id.textView1);
该函数利用我们在XML文件中定义的View的id属性来获取相应的View对象。findViewById的参数是一个View的ID。
View.findViewById() vs Activity.findViewById()
一般我们在oncreate()方法中使用的(**view)findViewById(R.id.**)既是调用的Activity中的findViewById()函数。
而在其他情况写出的***view.findViewById()中调用的是view类中的findViewById()
3. 学习在layout中使用@string查找字符串
res->values->strings.xml添加string元素,定义<stringname="msg">Hello Jason!</string>
在activity.java中的引用格式为:R.string. msg
在activity.xml中引用格式为 “@string/msg” (注意没有+) <!--引用了一个字符串来表示文本内容-->
4. 学习在android项目中加入资源国际化的技巧
在res目录下建立文件夹values-zh-rCN
在默认的values目录下的写英文的string
在新建的values-zh-rCN目录下添加string,写中文的string
系统会根据Custom Locale中默认的语言格式,设置资源的语言格式