在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属性,设置相关的方法
定义一个方法,记得参数是View