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本身作为事件监听器类

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 实现事件监听器的五种处理方法_第1张图片
定义一个方法,记得参数是View
Android 实现事件监听器的五种处理方法_第2张图片

你可能感兴趣的:(Android)