手记

Android实现事件监听的方法

1.通过内部类实现
2.通过匿名内部类实现
3.通过事件源所在类实现
4.通过外部类实现
5.布局文件中onclick属性(针对点击事件)

1.通过内部类实现代码:

 private Button mBtnEvent;
//oncreate中 
mBtnEvent.setOnClickListener(new OnClick());
 //内部类实现监听
    class OnClick implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.btn_event:
                    ToastUtil.showMsg(EventActivity.this,"click...");
                    break;
            }
        }
    }

2.通过匿名内部类实现代码

 mBtnEvent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ToastUtil.showMsg(EventActivity.this,"click...");
            }
        });

3.通过事件源所在类实现代码

public class EventActivity extends AppCompatActivity implements View.OnClickListener 
//onCreate中
    mBtnEvent.setOnClickListener(EventActivity.this);


  @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_event:
                ToastUtil.showMsg(EventActivity.this, "click...");
                break;
        }

4.通过外部类实现代码:

//新建外部类
package com.example.lineralayout;
import android.app.Activity;
import android.view.View;
import com.example.lineralayout.util.ToastUtil;

public class MyClickListener implements View.OnClickListener {
    private Activity mActivity;
    //创建构造方法
    public MyClickListener(Activity activity){
        this.mActivity = activity;
    }
    @Override
    public void onClick(View view) {
        ToastUtil.showMsg(mActivity, "click...");
    }
}

//在主类中调用外部类
 mBtnEvent.setOnClickListener(new MyClickListener(EventActivity.this));

5.布局文件中onClick属性(针对点击事件)
xml代码:

  <Button
        android:id="@+id/btn_event"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="click me"
        android:textAllCaps="false"
        android:onClick="onClick"/>

activity代码:

//第一种
  public void onClick(View view) {
        ToastUtil.showMsg(EventActivity.this, "click...");
//第二种
  public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn_event:
                ToastUtil.showMsg(EventActivity.this,"click...");
                break;
}
}

监听三要素
Event Source(事件源)
Event(事件)
Event Listener(事件监听器)

2人推荐
随时随地看视频
慕课网APP