Android用户界面框架(Android UI Framework)采用MVC(Model-View-Controller)模型。
提供了处理用户输入的控制器(Controller)、显示用户界面和图像的视图(View),以及保存数据和代码的模型(Model)
基本界面控件
1、简介
- Android系统的界面控件分为定制控件和系统控件
- 定制控件是用户独立开发的控件,或通过继承并修改系统控件后所产生的新控件。能够为用户提供特殊的功能或与众不同的显示需求方式
- 系统控件是Android系统提供给用户已经封装的界面控件。提供在应用程序开发过程中常见功能控件。系统控件更有利于帮助用户进行快速开发,同时能够使Android系统中应用程序的界面保持一致性
2、TextView和EditText
- TextView是一种用于显示字符串的控件
- EditText则是用来输入和编辑字符串的控件
- EditText是一个具有编辑功能的TextView
3、Button和ImageButton
- Button是一种按钮控件,用户能够在该控件上点击,并后引发相应的事件处理函数
- ImageButton用以实现能够显示图像功能的控件按钮
4、CheckBox和RadioButton,以及ToggleButton(状态开关按钮)
-RadioGroup是RadioButton的承载体,程序运行时不可见,应用程序中可能包含一个或多个RadioGroup
- 一个RadioGroup包含多个RadioButton,在每个RadioGroup中,用户仅能够选择其中一个RadioButton
- ToggleButton按钮使用OnClickChangedListener
- CheckBox和RadioButton 按钮使用OnClickListener
5、Spinner
- Spinner是一种能够从多个选项中选一选项的控件,类似于桌面程序的组合框(ComboBox),但没有组合框的下拉菜单,而是使用浮动菜单为用户提供选择
- 使用过程
<Spinner android:id="@+id/Spinner01"
android:layout_width="300dip"
android:layout_height="wrap_content">
</Spinner>
Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
List<String> list = new ArrayList<String>();
list .add("Spinner子项1");
list .add("Spinner子项2");
list .add("Spinner子项3");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list );//定义一个数组适配器
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//使用系统自带的一个样式
spinner.setAdapter(adapter);
使用OnItemSelectedListener监听器,该监听器有四个参数。
6、ListView
- ListView是一种用于垂直显示的列表控件,如果显示内容过多,则会出现垂直滚动条
- ListView能够通过适配器将数据和自身绑定,在有限的屏幕上提供大量内容供用户选择,所以是经常使用的用户界面控件
- ListView支持点击事件处理,用户可以用少量的代码实现复杂的选择功能
<ListView android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
ListView listView = (ListView)findViewById(R.id.ListView01);
List<String> list = new ArrayList<String>();
list.add("ListView子项1");
list.add("ListView子项2");
list.add("ListView子项3");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list );
listView.setAdapter(adapter);
使用OnItemClickListener监听器,该监听器有四个参数。
7、数据适配器
- 数据适配器:是连接数据源和视图界面的桥梁。
- 作用:把复杂的数据(数组、链表、数据库、集合等)填充在指定分类:
- 数组适配器:用于绑定格式单一的数据 数据源(可以是集合、数组)——纯文字版
- 简单适配器:用于绑定格式复杂的数的视图界面中。数据源(只能是特定泛型的集合)——图文并茂
- 实现步骤:新建适配器——添加数据源到适配器——视图加载适配器
新建适配器:
新建数组适配器:
//参数信息(上下文信息,样式,数据源)
arrayAdapter=new ArrayAdapternew ArrayAdapter(Context,Resource,List);
新建简单适配器:
/*参数信息(上下文,
数据源一个map所组成的list集合 每一个map都对应ListView列表中的一行 每一个Map(键-值对)中 的键必须包含from中所指定的键,
resouce:列表项的布局文件ID,
from:Map中的键名,
to:绑定数据视图中的id,与from成对应关系 新写的2个ID)
*/
simpleAdapter=new SimpleAdapter(context,list,resource,from,to);
添加数据源到适配器
视图加载适配器
listView.setAdapter(simpleAdapter);