1. 程式人生 > >安卓onkeyup onkeydown事件小記

安卓onkeyup onkeydown事件小記

安卓軟鍵盤的實現:http://blog.csdn.net/hfsu0419/article/details/7924673

Activity.onKeyDown();
當某個鍵被按下時會觸發,但不會被任何的該Activity內的任何view處理。
預設按下KEYCODE_BACK鍵後會回到上一個Activity。

Activity.onKeyUp():
當某個按鍵被按下,鬆開後觸發,但不會被任何的該Activity內的任何view處理。
預設沒有執行任何操作,只是簡單的給一個false作為返回值。

在Android中是通過觸屏及鍵盤來操作程式的,我們如何響應一般的鍵盤及觸筆動作呢?通過對Android一些基本介面元素的操作的瞭解,Android將會如何處理鍵盤事件?仍在Activity中改事件響應函式來做到。

一般是如下三個Android鍵盤操作的函式:

onKeyDown, onKeyUp, on, onKeyMultiple

參看如下Android鍵盤操作程式碼:

  1. import android.app.Activity;  
  2. import android.app.ProgressDialog;  
  3. import android.os.Bundle;  
  4. import android.view.KeyEvent;  
  5. import android.view.Menu;  
  6. import android.view.MenuItem;  
  7. import android.widget.TextView;  
  8. public class TestProgress extends Activity {  
  9. private ProgressDialog progress = null;  
  10. @Override  
  11. public void onCreate(Bundle savedInstanceState) {  
  12. super.onCreate(savedInstanceState);  
  13. setContentView(R.layout.main);  
  14. }  
  15. @Override  
  16. public boolean onCreateOptionsMenu(Menu menu) {  
  17. super.onCreateOptionsMenu(menu);  
  18. menu.add(0, Menu.FIRST+1, 1, "Open Progress");  
  19. menu.add(0, Menu.FIRST+2, 2, "Exit");  
  20. return true;  
  21. }  
  22. @Override  
  23. public boolean onOptionsItemSelected(MenuItem item) {  
  24. super.onOptionsItemSelected(item);  
  25. switch (item.getItemId())  
  26. {  
  27. case Menu.FIRST +1:  
  28. {  
  29. progress = new ProgressDialog(this);  
  30. progress.setTitle("Progress!!");  
  31. progress.setMessage("Please wait for the operation...");  
  32. progress.setCancelable(true);   
  33. progress.show();  
  34. //progress = ProgressDialog.show(this, "Progress!", "Please wait for operation...");  
  35. break;  
  36. }  
  37. case Menu.FIRST +2:  
  38. {   
  39. finish();  
  40. break;  
  41. }  
  42. }  
  43. return true;  
  44. }  
  45. @Override  
  46. public boolean onKeyDown(int keyCode, KeyEvent event) {  
  47. // TODO Auto-generated method stub  
  48. super.onKeyDown(keyCode, event);  
  49. setTitle("you pressed key:" + String.valueOf(keyCode));  
  50. return true;  
  51. }  
  52. @Override  
  53. public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {  
  54. // TODO Auto-generated method stub  
  55. super.onKeyMultiple(keyCode, repeatCount, event);  
  56. TextView tv = (TextView)this.findViewById(R.id.mainview);  
  57. tv.setText("you have press key:[" + String.valueOf(keyCode) + "] for:" + String.valueOf(repeatCount) + "Times!");  
  58. return true;  
  59. }  
  60. @Override  
  61. public boolean onKeyUp(int keyCode, KeyEvent event) {  
  62. // TODO Auto-generated method stub  
  63. super.onKeyUp(keyCode, event);  
  64. setTitle("you release key:" + String.valueOf(keyCode));  
  65. return true;  
  66. }  
  67. }

   

相關推薦

onkeyup onkeydown事件小記

安卓軟鍵盤的實現:http://blog.csdn.net/hfsu0419/article/details/7924673 Activity.onKeyDown(); 當某個鍵被按下時會觸發,但不會被任何的該Activity內的任何view處理。 預設按下KEYCO

點擊事件回調機制的思考

當我 屬性 .com 分享 是什麽 很好 理解 匿名內部類 參數 回調(毀掉?)機制 http://www.cnblogs.com/heshuchao/p/5376298.html這篇文章講的很好。 這篇 屬於 JAVA的範疇,只不過我們是借用安卓按鈕的onclick事件來

觸控手勢事件實現圖片跟著手指移動和圖片縮放

效果如下: 佈局程式碼: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

H5手機端iOS,長按事件的解決方案

之前做手機端遊戲的開發,遇到了需要點選事件、長按事件來觸發‘上下左右’的場景,由於專案很急(好吧,其實是自己懶),網上直接搜尋外掛,痛快,不過提交測試悲劇了,ios非常正常,安卓就不行了,趕緊看了原始碼,我的天,看不懂,壓縮的什麼鬼(此處不貼圖了)。好吧,還是自己寫吧,仔細回

從Listview與Button點選事件衝突看點選事件分發機制

題目有點長。其實實現Listview的時候大家都可能會碰到這樣的一個問題,那就是Listview的OnItemClickListener點選事件與Button(或者checkbox)的touch(或者click)事件衝突的問題。 宣告一下,非常感謝郭大師的這篇blog: h

權威編程指南-筆記 (第29章定制視圖與觸摸事件

getx prot ret tex when fff ati 簡單 lean 1.定制視圖   Android自帶眾多優秀的標準視圖與組件,但有時為追求獨特的應用視覺效果,我們仍需創建定制視圖。   定制視圖分為兩大類別:   簡單視圖: 簡單視圖內部也可以很復雜,之所以

9:事件分發機制

結束 ron 何事 處理 spa 將不 包含 move 一個 1: ? public boolean dispatchTouchEvent (MotionEventev) 這個方法分發TouchEvent ? public booleanonInterceptT

解決 Cordova 打包 vue項目為 APP 後,在平臺下 touchMove 事件不生效的問題

div 註意 項目 實現 部分 body fault event tde Cordova + vue 打包成 APP 後在部分安卓機上面,左右滑動無法正常的實現頁面滾動邏輯。 解決方案:   在 touchMove 的時候,通過 event.preventDefault

】乾坤大羅移,將容器觸摸事件傳至還有一容器、!

cti views trac col touch mark src motion tis 思路: 1.基於view.dispatchTouchEvent 作用:

app內嵌vue h5,和ios攔截H5點擊事件

需要 如果 bsp eth 第一個 log src ons col 安卓和ios攔截h5點擊事件,這個函數事件必須是暴漏在window下的 安卓和ios攔截普通h5函數: 1 <div onclick = "show(),window.android.show()"

自定義:Toast 以及Toast的出場動畫 以及Toast上新增圖片 以及點選事件

安卓自定義Toast: 1.自定義一個類:CustomToast 繼承自:Toast 2.在CustomToast類中 新增一個靜態 mCustomToast 物件 private static CustomToast mCustomToast; 3.在CustomToast類中 新

從另一個思路來學習事件分發機制

從另一個思路來學習安卓事件分發機制 前言 事件分發機制是一個安卓老生常談的話題了,從前幾年的面試必問題到如今的本當成預設都會的基礎知識。關於這方面的部落格網上已經有很多很多了,有從原始碼分析的,有從實際出發開始分析的等等。面對這麼多的教程,小白可能一頭霧水不知道從哪裡看起,而且看完之後感覺啥也沒留下。那麼

按鍵事件

安卓按鍵事件 一、思維結構 二、涉及知識點 1、線性佈局 2、影象檢視 (1)影象源 – src (2)背景 – background (3)比例型別 – scaleType 3、安卓按鍵事件處理 三、步驟 (米老鼠) 1、建立安卓應用MoveMickeyByKey 2、準備背

入門之Button事件響應

Android環境 介紹 Android Studio 2.3.3  、Java之後的安卓入門部落格都是在這個環境下進行的。    Button原理簡單分析       眾所周知,button的作用就是響應事件,當but

自定義View進階-特殊控制元件的事件處理方案

本文帶大家瞭解 Android 特殊形狀控制元件的事件處理方式,主要是利用了 Region 和 Matrix 的一些方法,超級實用的事件處理方案,相信看完本篇之後,任何奇葩控制元件的事件處理都會變得十分簡單。 不得不說,Android 對事件體系封裝的非常棒,即便對事件體系不太

自定義View進階-事件分發機制詳解

Android 事件分發機制詳解,在上一篇文章 事件分發機制原理 中簡要分析了一下事件分發機制的原理,原理是十分簡單的,一句話就能總結:責任鏈模式,事件層層傳遞,直到被消費。 雖然原理簡單,但是隨著 Android 不斷的發展,實際運用場景也越來越複雜,所以想要徹底玩轉事件分發機制還

Android_為按鈕控制元件繫結事件的五種方式

寫在最前面     本次,來介紹一下安卓中為控制元件--Button繫結事件的五種方式。 二、具體的實現     第一種:直接繫結在Button控制元件上:         步驟1.在Button控制元件上設定android:onClick=",其中這個屬性的屬性值對應的是MainA

觸控事件與單擊事件的區別

在學習了安卓的觸控事件和單擊事件後,我做了一個小實驗,從中總結出它們之間的區別。 實驗如下: 首先在activity_main.xml檔案中製作一個簡單的按鈕 在Java  class檔案中設定對按鈕的單擊監聽,和觸控監聽: package com.example.a

【阻止返回鍵】並且帶上事件

XBack = {}; (function(XBack) { XBack.STATE = 'x - back'; XBack.element; XBack.onPopState = function(event) { event.state ===

實現任意控制元件view可拖拽,並監聽拖拽和點選事件,可自動拉回螢幕邊緣

因為專案中有需要實現控制元件可任意拖拽的需求,所以簡單寫了個自定義OnTouchListener,以作拋磚引玉,歡迎大家提議反饋。 完整實現類如下,程式碼中有詳細註釋: 使用者可以決定是否開啟自動拖拽邊緣功能,可以監聽控制元件的拖拽和點選事件 public cl