Android开发之基于监听的事件处理

时间:2023-03-09 17:56:28
Android开发之基于监听的事件处理

在Android 应用开发过程中,常用监听事件如下:
(1) ListView事件监听
setOn ItemSelectedListener:鼠标滚动时触发
setOnItemClickListener: 点击时触发
(2 )EditText 事件监听
setOnKeyListener: 获取焦点时触发
(3) RadioGroup事件监听
setOnCheckedChangeListener: 点击时触发
(4) CheckBox事件监听
setOnCheckedChangeListener :点击时触发
(5 )Spinner事件监听
setOnltemSelectedListener:点击时触发

(6) DatePicker 事件监听

onDateChangedListener: 日期改变时触发

(7 )DatePickerDialog 事件监听
onDateSetListener:设置日期时触发
(8) TimePicker 事件监听
onTimeChangedListener:时间改变时触发
(9 )TimePickerDialog 事件监听
onTimeSetListener: 设置时间时触发
(10)Button.ImageButton 事件监听
setOnClickListener: 点击时触发
(11)Menu 事件监听
onOptionsltemSelected; 点击时触发
(12 )Gallery 事件监听
setOnItemClickListener: 点击时触发
(13 )GridView 事件监听
setOnltemClickListener: 点击时触发

 

实现事件监听器的方法:

  • 内部类形式
  • 外类类形式
  • Activity本身作为事件监听器类
  • 匿名内部类形式
  • 直接绑定到标签

内部类形式

将事件监听器类定义在当前类的内部

  

public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
}
class MyButtonlistener implements View.OnClickListener{
@Override
public void onClick(View v) {
//相关事件处理
}
}
}

外类类形式

Test类

public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
} }

MyButtonlistener类

public class MyButtonlistener implements View.OnClickListener {
@Override
public void onClick(View v) {
//事件处理
}
}

Activity本身作为事件监听器类

  将Activity本身作为事件监听器类

  

public class Test extends Activity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(this); } @Override
public void onClick(View v) {
//事件处理
}
}

匿名内部类形式

public class Test extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//事件处理
}
});
}
}

直接绑定到标签

在xml的布局文件中加入onClick属性,设置相关的方法

Android开发之基于监听的事件处理

定义一个方法,记得参数是View

Android开发之基于监听的事件处理