| 
          
         | 
         
          
          
                (一)   事件使我们在于  UI  交互式发生的,我们点击一个按键时,可能就已经除非好几个事件,例如我们点击数字键  “0”  ,他会涉及到按下事件,和一个弹起(松开)事件,在我们  android  中还可能涉及到触摸屏事件,所以在  android  系统中,事件是作为常用的功能之一; 
 
          在 android 下,事件的发生是在监听器下进行, android 系统可以响应按键事件和触摸屏事件,事件说明如下: 
 
            onClick(View v)  一个普通的点击按钮事件 
 
            boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event) 用于在多个事件连续时发生,用于按键重复,必须重载 @Override 实现 
 
           boolean onKeyDown(int keyCode,KeyEvent event)  用于在按键进行按下时发生 
 
           boolean onKeyUp(int keyCode,KeyEvent event )  用于在按键进行释放时发生 
 
           onTouchEvent(MotionEvent event) 触摸屏事件,当在触摸屏上有动作时发生 
 
          boolean onKeyLongPress(int keyCode, KeyEvent event) 当你长时间按时发生(疑问?) 
 
           (二)   首先我们建立一个 android 项目,当项目建立好之后,直接在默认的 main.xml 文件中拖放一个 button  按钮,其他的不需要在这里做什么了,然后就可以到命名好的 .java 文件中进行先关代码的书写; 
 
           1.       对要使用的控件进行引用,当然你也可以用到的时候再在相关类控件添加引用                        import  android.app.Activity; 
 
                       import  android.os.Bundle; 
 
                       import  android.view.KeyEvent; 
 
                       import  android.view.MotionEvent; 
 
                       import  android.view.View; 
 
                       import  android.widget.Button; 
 
                       import  android.widget.Toast;                 |  
  
 
       2.       获得相关对象,设置控件监听器                        Button   button=( Button) findViewById(R.id.  button1  ); 
 
                               // 设置监听 
 
                              button.setOnClickListener(  new   Button.OnClickListener() 
 
                              { 
 
                                  @Override 
 
                                   public   void  onClick(View v) { 
 
                                     //   TODO  Auto-generated method stub 
 
                                    DisplayToast( " 事件触发成功 " ); 
 
                                 }            
 
                              });                 |  
  
 
      请注意这里末尾使用的是分号“;这里就是获得 button 的实例,然后对他进行监听,当用户点击时就会发生 onClick 事件,这里还用到一个方法,就是显示一个短消息,在屏幕停留几秒钟就会自动消失,其方法如下 :                        public   void  DisplayToast(String str) 
 
                          { 
 
                          Toast.makeText(  this , str, Toast. LENGTH_SHORT ).show(); 
 
                          }                 |  
  
 
      当然你也可以设置显示长点,即 Toast. LENGTH_SHORT 改为 Toast.LENGTH_LONG 
 
           3.       当按键按下是发生的事件                       public boolean onKeyDown(<u>int</u> keyCode,KeyEvent event) 
 
                          { 
 
                          switch(keyCode) 
 
                          { 
 
                          case KeyEvent.KEYCODE_0: 
 
                              DisplayToast(" 你按下数字键 0"); 
 
                              break; 
 
                          case KeyEvent.KEYCODE_DPAD_CENTER: 
 
                              DisplayToast(" 你按下中间键 "); 
 
                              break;<u>sss</u> 
 
                          case KeyEvent.KEYCODE_DPAD_DOWN: 
 
                              DisplayToast(" 你按下下方向键 "); 
 
                              break; 
 
                          case KeyEvent.KEYCODE_DPAD_LEFT: 
 
                              DisplayToast(" 你按下左方向键 "); 
 
                              break; 
 
                          case KeyEvent.KEYCODE_DPAD_RIGHT: 
 
                              DisplayToast(" 你按下右方向键 "); 
 
                              break; 
 
                          case KeyEvent.KEYCODE_DPAD_UP: 
 
                              DisplayToast(" 你按下上方向键 "); 
 
                                 break; 
 
                          case KeyEvent.KEYCODE_ALT_LEFT: 
 
                              DisplayToast(" 你按下组合键<u> alt</u> +←"); 
 
                              break; 
 
                          } 
 
                          return super.onKeyDown(keyCode, event); 
 
                          }                 |  
  
 
 
                         4.           当按键弹起时发生的事件,代码如下:                        public   boolean  onKeyUp(  int  keyCode,KeyEvent event) 
 
                          { 
 
                            switch (keyCode) 
 
                          { 
 
                            case  KeyEvent. KEYCODE_0 : 
 
                              DisplayToast( " 松开数字键 0" ); 
 
                                break ; 
 
                            case  KeyEvent. KEYCODE_DPAD_CENTER : 
 
                              DisplayToast( " 松开中间键 " ); 
 
                                break ; 
 
                            case  KeyEvent. KEYCODE_DPAD_DOWN : 
 
                              DisplayToast( " 松开下方向键 " ); 
 
                                break ; 
 
                            case  KeyEvent. KEYCODE_DPAD_LEFT : 
 
                              DisplayToast( " 松开左方向键 " ); 
 
                                break ; 
 
                            case  KeyEvent. KEYCODE_DPAD_RIGHT : 
 
                              DisplayToast( " 松开右方向键 " ); 
 
                                break ; 
 
                            case  KeyEvent. KEYCODE_DPAD_UP : 
 
                              DisplayToast( " 松开上方向键 " ); 
 
                                   break ; 
 
                            case  KeyEvent. KEYCODE_ALT_LEFT : 
 
                              DisplayToast( " 松开组合键 alt+←" ); 
 
                                break ; 
 
                          } 
 
                            return   super .onKeyUp(keyCode, event); 
 
                          }                 |  
  
 
 
           5.           触摸屏事件,当用手或者用笔在触摸屏上做动作是发生,相关代码如下:                        public   boolean  onTouchEvent(MotionEvent event) 
 
                          { 
 
                            int  iAction=event.getAction(); 
 
                            if (iAction==MotionEvent. ACTION_MOVE ) 
 
                          { 
 
                              DisplayToast( " 你在触摸屏上进行了滑动 " ); 
 
                          } 
 
                            else 
 
                          { 
 
                                return   false ; 
 
                          } 
 
                            return   super .onTouchEvent(event); 
 
                          }                 |  
  
           6.           连续点击按键时发生的事件                       Publicboolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event) 
 
                      { 
 
                       Return super.onKeyMultiple(keyCode, repeatCount, event); 
 
                      }                 |  
  
 
      整体效果还不错,又向android迈进一步!!! 
 
				 
											 
---------------------------- 
原文链接:https://blog.51cto.com/shenzhoulong/510230 
 
程序猿的技术大观园:www.javathinker.net 
 
 
          
          
          
            
  
            [这个贴子最后由 flybird 在 2020-06-03 20:52:29 重新编辑]
          
          
         | 
        
      
 
网站系统异常
 
 
    
     | 系统异常信息 | 
     
    
     
       
         Request URL: 
http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3228
  
java.lang.NullPointerException
         
  
如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员。
       
      | 
     
 
 |