## 第四天.基础UI控件 ##
### 4.1基本控件介绍 ###
本章全部都是控件,自己拖拽一下,研究一下就行了,熟悉android里有什么控件
应该怎么用,主要就是看demo,自己拖拽,如果不会拖拽哪请看第一天的课程
**1、Button 按钮**
+ 研究ButtonDemo
![](https://box.kancloud.cn/2016-05-21_573fc2ec5a459.png)
**2、TextView 文本框**
+ 研究TextViewDemo
![](https://box.kancloud.cn/2016-05-21_573fc2ec71f5b.png)
**3、EditText 文本编辑框**
+ 研究EditTextDemo
![](https://box.kancloud.cn/2016-05-21_573fc328805e8.png)
**4、CheckBox 多项选择**
每个多选框都是独立的,可以通过迭代所有多选框,然后根据其状态是否被选中再获取其值。
+ CheckBox.setChecked(true);//设置成选中状态。
+ CheckBox.getText();//获取多选框的值
+ 调用setOnCheckedChangeListener()方法,处理多选框被选择事件,把CompoundButton.OnCheckedChangeListener实例作为参数传入
+ 研究CheckBoxDemo
![](https://box.kancloud.cn/2016-05-21_573fc328946c8.png)
**5、RadioButton 单项选择**
+ 研究RadioButtonDemo
![](https://box.kancloud.cn/2016-05-21_573fc328aa489.png)
**6、Spinner 下拉列表**
+ Spinner.getItemAtPosition(Spinner.getSelectedItemPosition());获取下拉列表框的值
+ 调用setOnItemSelectedListener()方法,处理下拉列表框被选择事件,把AdapterView.OnItemSelectedListener实例作为参数传入
**下拉列表框—Adapter**
+ 很多时候显示在下拉列表框的值并不是希望得到的值,如果要做一个联系人下拉列表框,列表框列出的是联系人的姓名,因为姓名有可能相同,所以我们希望得到的值应该为该联系人的id,要实现这种需求我们需要自定义Adapter,当然自定义Adapter需要我们编写一小段代码,如果我们不想编写Adapter,又能实现我们的需求,那是最好不过的了。通过观察ArrayAdapter中getView(int position, View convertView, ViewGroup parent)的内部代码发现,如果为ArrayAdapter指定的实际泛型参数类型没有实现CharSequence(字符串)接口,将会调用该类型对象的toString()向下拉列表框输出显示值。利用这个特点我们可以重写javaBean的toString()向下拉列表框提供显示值。
下拉列表框--自定义选项界面样式
![](https://box.kancloud.cn/2016-05-21_573fc328c08a3.png)
+ Spinner.getItemAtPosition(Spinner.getSelectedItemPosition());获取下拉列表框的值
+ 调用setOnItemSelectedListener()方法,处理下拉列表框被选择事件,把AdapterView.OnItemSelectedListener实例作为参数传入
**7、TimePicker/DatePicker 时间选择器**
+ 研究TimeDatePicker
![](https://box.kancloud.cn/2016-05-21_573fc328d9d41.png)
![](https://box.kancloud.cn/2016-05-21_573fc328f216c.png)
![](https://box.kancloud.cn/2016-05-21_573fc329108a3.png)
**8、ScrollView 滚动视图**
+ 研究ScrollViewDemo
![](https://box.kancloud.cn/2016-05-21_573fc32928403.png)
**9、ImageView 图片视图**
+ 研究ImageViewDemo
![](https://box.kancloud.cn/2016-05-21_573fc3293ee75.png)
**10、ImageButton 图片按钮**
+ 研究ImageButtonDemo
![](https://box.kancloud.cn/2016-05-21_573fc3295182b.png)
**11、GridView 网格视图**
+ 研究GridViewImageDemo
### 4.2认识Widget组件 ###
1. 界面中展示的各个小组件
2. 有独立的事件处理能力
3. 所有Wiget组件都是继承View而来
### 4.3Widget组件类继承关系 ###
![](https://box.kancloud.cn/2016-05-21_573fc3296aa87.png)
[源代码下载](http://www.apkbus.com/android-83257-1-1.html)