轉載於: http://www.iteye.com/topic/1060325 
事件就是用戶與UI界面的交互時所觸發的操作。比如點擊某一個按鈕,會觸發一個事件等 

1、最長用的按鈕事件:OnClickListener 

Java代碼  收藏代碼 

         mybutton = (Button)findViewById(R.id.mybutton);  
         mybutton.setOnClickListener(new Button.OnClickListener()  
         {  
      
    @Override  
    public void onClick(View arg0) {  
        // TODO Auto-generated method stub  
        ShowMessage("點擊了Button按鈕");  
    }  
      
         });  







2、我們還可以自定義KeyEvent,比如 

Java代碼  收藏代碼 

    public boolean onKeyDown(int keyCode, KeyEvent event)  
    {  
        /** 
         * 這裏構建KeyEvent對象,功能为返回鍵的功能 
         * 即我們按任意鍵都是返回鍵功能 
         */  
        KeyEvent key = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);  
        return super.onKeyDown(keyCode, event);  
    }  







3、手機按鍵的事件處理 

Boolean onKeyDown(int keyCode, KeyEvent event):相應按鍵按下 

Boolean onKeyUp(int keyCode, KeyEvent event):相應按鍵釋放 

Boolean onKeyMultiple():相應按鍵重复點擊 

Boolean onTouchEvent(MotionEvent event):相應觸屏事件 


Java代碼  收藏代碼 

    package org.hualang.eventtest01;  
      
    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;  
      
    public class EventTest01 extends Activity {  
        /** 
         * 注意,要重寫onKeyDown,onKeyUp,onTouchEvent方法 
         */  
        private Button mybutton;  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
            mybutton = (Button)findViewById(R.id.mybutton);  
            mybutton.setOnClickListener(new Button.OnClickListener()  
            {  
      
                @Override  
                public void onClick(View arg0) {  
                    // TODO Auto-generated method stub  
                    ShowMessage("點擊了Button按鈕");  
                }  
      
            });  
              
        }  
        /**按鍵按下觸發的事件*/  
        public boolean onKeyDown(int keyCode, KeyEvent event)  
        {  
            switch(keyCode)  
            {  
            case KeyEvent.KEYCODE_DPAD_CENTER:  
                ShowMessage("按下:中鍵");break;  
            case KeyEvent.KEYCODE_DPAD_UP:  
                ShowMessage("按下:上方向鍵");break;  
            case KeyEvent.KEYCODE_DPAD_DOWN:  
                ShowMessage("按下:下方向鍵");break;  
            case KeyEvent.KEYCODE_DPAD_LEFT:  
                ShowMessage("按下:左方向鍵");break;  
            case KeyEvent.KEYCODE_DPAD_RIGHT:  
                ShowMessage("按下:右方向鍵");break;  
            }  
            return super.onKeyDown(keyCode, event);  
        }  
          
        /**按鍵彈起所觸發的事件*/  
        public boolean onKeyUp(int keyCode, KeyEvent event)  
        {  
            switch(keyCode)  
            {  
            case KeyEvent.KEYCODE_DPAD_CENTER:  
                ShowMessage("彈起:中鍵");  
                break;  
            case KeyEvent.KEYCODE_DPAD_DOWN:  
                ShowMessage("彈起:下方向鍵");  
                break;  
            case KeyEvent.KEYCODE_DPAD_UP:  
                ShowMessage("彈起:上方向鍵");  
                break;  
            case KeyEvent.KEYCODE_DPAD_LEFT:  
                ShowMessage("彈起:左方向鍵");  
                break;  
            case KeyEvent.KEYCODE_DPAD_RIGHT:  
                ShowMessage("彈起:右方向鍵");  
                break;  
            }  
            return super.onKeyUp(keyCode, event);  
        }  
          
       /**按鍵重复點擊事件*/  
        public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)  
        {  
            return onKeyMultiple(keyCode, repeatCount, event);  
        }  
          
        /**觸屏事件*/  
        public boolean onTouchEvent(MotionEvent event)  
        {  
            int action = event.getAction();  
            if(action ==  MotionEvent.ACTION_CANCEL||action == MotionEvent.ACTION_DOWN||action == MotionEvent.ACTION_MOVE)  
            {  
                return false;  
            }  
            //得到觸點的位置  
            String x = String.valueOf(event.getX());  
            String y = String.valueOf(event.getX());  
              
            ShowMessage("觸點坐標:(" + x + "," + y +")");  
            return super.onTouchEvent(event);  
        }  
          
        /**顯示觸發事件的信息*/  
        public void ShowMessage(String str)  
        {  
            Toast toast = Toast.makeText(this, str, Toast.LENGTH_SHORT);  
            toast.show();  
        }  
    }  



運行結果如下: 













From:ITEYE

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()