zoukankan      html  css  js  c++  java
  • 第08讲- 常见事件响应的实现方式对比

    第08讲常见事件响应的实现方式对比

    1. 单击事件:onClickListener

    2. 长按事件:onLongClickListener

    3. 滑动事件:onTouchListener

    4. 键盘事件:onKeyListener

    5. 焦点事件:setOnFocusChangeListener

    一、实现方式(以单击事件为例)

    1. 动态设置(最常见的方式)

    添加button按钮(button1),在onCreate方法中通过findViewById找到button,之后设置点击button的响应,比如弹出提示框。

    Button button=(Button) findViewById(R.id.button1); 
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) { 
    <span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "button被点击了", Toast.LENGTH_SHORT).show(); 
        } 
    });
    

    2. 配置方式(仅仅限于onclick事件)

    在activity.xml中button属性中添加android:onClick="test" 之后,在mainactivity.java中添加一个test方法,在该方法中设置button的响应。其中传入的view值就是被点击的button

    public void test(View view) {
             view.setX(view.getX()+10);      //实现点击后按钮x坐标向右移动10
    }

    3. 可复用方式(这种方式适用于重复可复用代码)

    在动态设置的基础上进行修改

    Button button1=(Button)findViewById(R.id.button1);             button1.setOnClickListener(mylistener);

    Button button2=(Button)findViewById(R.id.button2);             button2.setOnClickListener(mylistener);

    之后设置一个变量mylistener

    private View.OnClickListenermylistener=new OnClickListener() {
       public void onClick(View v) {
    <span style="white-space:pre">	</span>Toast.makeText(MainActivity.this, "button被点击了",Toast.LENGTH_SHORT).show();
       }
    };


    采用可复用方式好处在于,当有多个button时可以多次重复利用同一个mylistener, 例如可以添加switch方法实现不同的响应。

    public void onClick(Viewv) {
        switch (v.getId()) {
    <span style="white-space:pre">	</span>case R.id.button1:
    <span style="white-space:pre">	</span>    Toast.makeText(MainActivity.this,"button1被点击了", Toast.LENGTH_SHORT).show();
    <span style="white-space:pre">	</span>    break;
    <span style="white-space:pre">	</span>case R.id.button2:
    <span style="white-space:pre">	</span>    Toast.makeText(MainActivity.this,"button2被点击了", Toast.LENGTH_SHORT).show();
    <span style="white-space:pre">	</span>    break;
    <span style="white-space:pre">	</span>case R.id.button3:
    <span style="white-space:pre">	</span>    Toast.makeText(MainActivity.this, "button3被点击了",Toast.LENGTH_SHORT).show();
    <span style="white-space:pre">	</span>    break;
    <span style="white-space:pre">	</span>default:
    <span style="white-space:pre">	</span>    break;
        }
    } 





  • 相关阅读:
    kyeremal-bzoj2038-[2009国家集训队]-小z的袜子(hose)-莫队算法
    移位操作之旋转移位
    leetcode 二分查找 Search in Rotated Sorted Array
    背包算法练习--求小于某数字的数组最大和:
    Splunk 会议回想: 大数据的关键是机器学习
    CSDN个人空间、问答频道停站维护公告
    HDFS主要节点解说(一)节点功能
    24点
    【Nginx】事件驱动框架和异步处理
    OC中字符串的提取与替换-四种不同方法实现
  • 原文地址:https://www.cnblogs.com/anyuan9/p/6171612.html
Copyright © 2011-2022 走看看