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属性,设置相关的方法

 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM