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





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值