- 视图组件
- 小部件(Widgets)
- 菜单
- 对话框
- 消息提示条
布局、视图、小部件的相同点和不同点:
相同点:这三者都是可以显示的组件
不同点:从角色定义上
布局:注重整体,好比设计图
小部件(widget):注重的是细节,好比装饰品
视图(view):注重的是组件的组合,好比组合家具
相同点:这三者都是可以显示的组件
不同点:从角色定义上
布局:注重整体,好比设计图
小部件(widget):注重的是细节,好比装饰品
视图(view):注重的是组件的组合,好比组合家具
本讲重点讲解各视图组件和小部件的使用
一、视图组件
1、视图的使用模式:
定义和使用:和布局组件的定义一样,也有在运行时创建和使用XML这两种方式。和布局组件的不同之处在于,布局组件一般都是布局资源的根元素。而视图组件更多的 包含于布局之内,使用时必须使用findViewByID()方法,但也有个别视图组件标记根元素:如画廊视图和网页视图。使用时可以直接设置为内容,引用方法和布局一样:R.layout.<文件名>,setContentView()
2、视图组件的事件响应
当用户与屏幕显示的组件进行交互时,组件需要侦听用户的选择,并进行相应的响应。下表是view组件的事件及侦听器类型举例事件侦听器类型 | 对应的事件 | 说明 |
View.OnClickListener | onClick() | 点击事件 |
View.OnFocusChangeListener | onFocusChange() | 焦点改变事件 |
View.OnKeyListener | onKey() | 击键事件 |
View.OnTouchListener | onTouh() | 触摸事件 |
View.OnLongClickListener | onLongClick() | 长点击事件 |
View.OnCreateContextMenuListener | onCreatContextMenu() | 创建上下文菜单事件 |
在Android平台中,开发人员可以通过三种方式来设置事件侦听:
1)、先定义事件侦听器,后注册给需要侦听用户动作的组件:
private OnClickListener mListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.BTN_ACTION) {
Toast.makeText(EventHandleDemoAct.this, "Hello, Android!",
Toast.LENGTH_SHORT).show();
}
}
};
mBtnAction.setOnClickListener(mListener);
2)、重载用于侦听用户动作的事件回调函数
参考例子: Ch03_EventHandleDemo
public class EventHandleDemoAct extends Activity implements OnClickListener {
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.getId() == R.id.BTN_ACTION) {
Toast.makeText(EventHandleDemoAct.this, "Hello, Android!",
Toast.LENGTH_SHORT).show();
}
}
}
mBtnAction.setOnClickListener(this);
参考例子: Ch03_EventHandleDemo
3)、在XML文件中使用android:onClick属性配置对应的方法
在Activity中编写一个包含View类参数的方法,并且将要触发的动作代码放在该方法中,然后再布局文件中,通过android:onClick属性指定对应的方法名实现。
public void myClick(View view){
//编写要执行的动作代码
}
在布局文件中通过android:onClick=“myClick”语句添加点击事件监听器
在Activity中编写一个包含View类参数的方法,并且将要触发的动作代码放在该方法中,然后再布局文件中,通过android:onClick属性指定对应的方法名实现。
public void myClick(View view){
//编写要执行的动作代码
}
在布局文件中通过android:onClick=“myClick”语句添加点击事件监听器
二、小部件(widgets)
1、widgets介绍:
小部件widget都是指在界面框架中比较独立的视图组件,不作为容器组件。 例如:文本视图:TextView、按钮Button、图片视图ImageView小部件定义在android.widget包中
小部件既可以在XML中定义,也可以在代码中定义。在XML中小部件的定义都是在布局或者一些视图组件的定义体内,不会定义为布局资源的根元素。
2、小部件的使用:
引用资源:对于XML中定义的小部件,对小部件的使用,也必须先使用资源填充器inflater对XML资源进行填充Inflate;然后通过该资源文件对应的Activity组件或者小部件的父视图对象的findViewById()方法来获取资源ID指定的小部件对象实例
动态创建:在java代码中可以直接使用new语句来创建小部件对象实例,然后再添加到父视图中,添加时需要指明布局参数,定义如何放置小部件
动态创建:在java代码中可以直接使用new语句来创建小部件对象实例,然后再添加到父视图中,添加时需要指明布局参数,定义如何放置小部件
3、事件响应:
从设计角度,小部件正是用于与用户进行交互的。对其事件的响应也是最全面的在使用的过程中,必须先注册相应类型事件侦听器(Listener),在该侦听器的事件回调方法中再对该事件进行相应处理。