zoukankan      html  css  js  c++  java
  • 关于Button的监听

    事件就是用户与UI界面的交互时所触发的操作。比如点击某一个按钮,会触发一个事件等

    1、最长用的按钮事件:OnClickListener

    Java代码  
    1.      mybutton = (Button)findViewById(R.id.mybutton);  
    2.      mybutton.setOnClickListener(new Button.OnClickListener()  
    3.      {  
    4.   
    5. @Override  
    6. public void onClick(View arg0) {  
    7.     // TODO Auto-generated method stub  
    8.     ShowMessage("点击了Button按钮");  
    9. }  
    10.   
    11.      });  

    2、我们还可以自定义KeyEvent,比如

    Java代码  
    1. public boolean onKeyDown(int keyCode, KeyEvent event)  
    2. {  
    3.     /** 
    4.      * 这里构建KeyEvent对象,功能为返回键的功能 
    5.      * 即我们按任意键都是返回键功能 
    6.      */  
    7.     KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);  
    8.     return super.onKeyDown(keyCode, event);  
    9. }  

    3、手机按键的事件处理

    Boolean onKeyDown(int keyCode, KeyEvent event):相应按键按下

    Boolean onKeyUp(int keyCode, KeyEvent event):相应按键释放

    Boolean onKeyMultiple():相应按键重复点击

    Boolean onTouchEvent(MotionEvent event):相应触屏事件

    Java代码  
    1. package org.hualang.eventtest01;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5. import android.view.KeyEvent;  
    6. import android.view.MotionEvent;  
    7. import android.view.View;  
    8. import android.widget.Button;  
    9. import android.widget.Toast;  
    10.   
    11. public class EventTest01 extends Activity {  
    12.     /** 
    13.      * 注意,要重写onKeyDown,onKeyUp,onTouchEvent方法 
    14.      */  
    15.     private Button mybutton;  
    16.     @Override  
    17.     public void onCreate(Bundle savedInstanceState) {  
    18.         super.onCreate(savedInstanceState);  
    19.         setContentView(R.layout.main);  
    20.         mybutton = (Button)findViewById(R.id.mybutton);  
    21.         mybutton.setOnClickListener(new Button.OnClickListener()  
    22.         {  
    23.   
    24.             @Override  
    25.             public void onClick(View arg0) {  
    26.                 // TODO Auto-generated method stub  
    27.                 ShowMessage("点击了Button按钮");  
    28.             }  
    29.   
    30.         });  
    31.           
    32.     }  
    33.     /**按键按下触发的事件*/  
    34.     public boolean onKeyDown(int keyCode, KeyEvent event)  
    35.     {  
    36.         switch(keyCode)  
    37.         {  
    38.         case KeyEvent.KEYCODE_DPAD_CENTER:  
    39.             ShowMessage("按下:中键");break;  
    40.         case KeyEvent.KEYCODE_DPAD_UP:  
    41.             ShowMessage("按下:上方向键");break;  
    42.         case KeyEvent.KEYCODE_DPAD_DOWN:  
    43.             ShowMessage("按下:下方向键");break;  
    44.         case KeyEvent.KEYCODE_DPAD_LEFT:  
    45.             ShowMessage("按下:左方向键");break;  
    46.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
    47.             ShowMessage("按下:右方向键");break;  
    48.         }  
    49.         return super.onKeyDown(keyCode, event);  
    50.     }  
    51.       
    52.     /**按键弹起所触发的事件*/  
    53.     public boolean onKeyUp(int keyCode, KeyEvent event)  
    54.     {  
    55.         switch(keyCode)  
    56.         {  
    57.         case KeyEvent.KEYCODE_DPAD_CENTER:  
    58.             ShowMessage("弹起:中键");  
    59.             break;  
    60.         case KeyEvent.KEYCODE_DPAD_DOWN:  
    61.             ShowMessage("弹起:下方向键");  
    62.             break;  
    63.         case KeyEvent.KEYCODE_DPAD_UP:  
    64.             ShowMessage("弹起:上方向键");  
    65.             break;  
    66.         case KeyEvent.KEYCODE_DPAD_LEFT:  
    67.             ShowMessage("弹起:左方向键");  
    68.             break;  
    69.         case KeyEvent.KEYCODE_DPAD_RIGHT:  
    70.             ShowMessage("弹起:右方向键");  
    71.             break;  
    72.         }  
    73.         return super.onKeyUp(keyCode, event);  
    74.     }  
    75.       
    76.    /**按键重复点击事件*/  
    77.     public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)  
    78.     {  
    79.         return onKeyMultiple(keyCode, repeatCount, event);  
    80.     }  
    81.       
    82.     /**触屏事件*/  
    83.     public boolean onTouchEvent(MotionEvent event)  
    84.     {  
    85.         int action = event.getAction();  
    86.         if(action ==  MotionEvent.ACTION_CANCEL||action == MotionEvent.ACTION_DOWN||action == MotionEvent.ACTION_MOVE)  
    87.         {  
    88.             return false;  
    89.         }  
    90.         //得到触点的位置  
    91.         String x = String.valueOf(event.getX());  
    92.         String y = String.valueOf(event.getX());  
    93.           
    94.         ShowMessage("触点坐标:(" + x + "," + y +")");  
    95.         return super.onTouchEvent(event);  
    96.     }  
    97.       
    98.     /**显示触发事件的信息*/  
    99.     public void ShowMessage(String str)  
    100.     {  
    101.         Toast toast = Toast.makeText(this, str, Toast.LENGTH_SHORT);  
    102.         toast.show();  
    103.     }  
    104. }  

    运行结果如下:



     

     

  • 相关阅读:
    Java学习二十九天
    Java学习二十八天
    47. Permutations II 全排列可重复版本
    46. Permutations 全排列,无重复
    subset ii 子集 有重复元素
    339. Nested List Weight Sum 339.嵌套列表权重总和
    251. Flatten 2D Vector 平铺二维矩阵
    217. Contains Duplicate数组重复元素
    209. Minimum Size Subarray Sum 结果大于等于目标的最小长度数组
    438. Find All Anagrams in a String 查找字符串中的所有Anagrams
  • 原文地址:https://www.cnblogs.com/Codenewbie/p/2977459.html
Copyright © 2011-2022 走看看