zoukankan      html  css  js  c++  java
  • 安卓 基于监听的事件处理机制

    事件在安卓里面是比较重要的概念(在其他的js ,c# 也有类似)。

    事件三要素:事件源,事件,事件监听器

    例子:

    实现监听事件的方法

     

     1:通过事件源所在的类实现,内部类,匿名类,通过外部类

    package com.example.androidlsw;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    import com.example.androidlsw.util.MyClickListener;
    import com.example.androidlsw.util.ToastUtil;
    
    /**
     * @author lsw
     * implements View.OnClickListener: 通过事件源所在的类实现
     */
    public class EventActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button btn_event;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_event);
    
            btn_event=findViewById(R.id.btn_event);
    
            /*匿名类*/
            btn_event.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ToastUtil.getInstance().showMsg(EventActivity.this,"点击了我");
                }
            });
    
            /*内部类*/
            btn_event.setOnClickListener(new OnClick());
    
            /*通过事件源所在的类实现*/
            btn_event.setOnClickListener(EventActivity.this);
    
            /*通过外部类*/
            btn_event.setOnClickListener(new MyClickListener(EventActivity.this));
        }
    
        @Override
        public void onClick(View v) {
            ToastUtil.getInstance().showMsg(EventActivity.this,"点击了我");
        }
    
        /**
         * 内部类
         * */
        class  OnClick implements View.OnClickListener{
    
            @Override
            public void onClick(View v) {
                switch (v.getId()){
                    case R.id.btn_event:
                        ToastUtil.getInstance().showMsg(EventActivity.this,"点击了我");
                        break;
                        default:
                }
            }
        }
    }

    外部类:其实本质是自己新建了一个类 继承click

    public class MyClickListener implements View.OnClickListener {
    
        private  Activity mActivity;
    
        public  MyClickListener(Activity activity){
            this.mActivity=activity;
        }
    
        @Override
        public void onClick(View v) {
            ToastUtil.getInstance().showMsg(mActivity,"点击了我");
        }
    }
    

      最后一种:直接在xml里面写 类似JavaScript  html 写 onclick ,区别是安卓会自带view 参数。这里不演示 实际开发中也用的很少

      如果设置了同一个类型的事件,最后一个事件起作用。

    个人自学安卓开发

    来源:天哥在奔跑 

  • 相关阅读:
    使用八爪鱼采集所需信息
    一些小疑问&解答
    第一页的简单爬取
    【不解决了】对Spark源码进行编译
    python学习中的序列函数
    关于python中的小知识总结
    python学习13之数据泄密
    python学习12之梯度推进
    python学习11之交叉验证
    python学习10之管道清理建模
  • 原文地址:https://www.cnblogs.com/y112102/p/12491082.html
Copyright © 2011-2022 走看看