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) {
            //相关事件处理
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

外部类形式

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);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

MyButtonlistener类

public class MyButtonlistener implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        //事件处理
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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) {
        //事件处理
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

匿名内部类形式

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) {
                //事件处理
            }
        });
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

直接绑定到标签

在xml的布局文件中加入onClick属性,设置相关的方法 
这里写图片描述 
定义一个方法,记得参数是View 
这里写图片描述


你可能感兴趣的:(Android 实现事件监听器的五种处理方法)