久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android OnKeyListener接口

 myrepository 2012-06-20
    OnKeyListener接口簡介

       OnKeyListener是對手機(jī)鍵盤進(jìn)行監(jiān)聽的接口,,通過對某個View注冊該監(jiān)聽,,當(dāng)View獲得焦點并有鍵盤事件時,,便會觸發(fā)該接口中的回調(diào)方法。該接口中的抽象方法簽名如下,。

Java代碼:
  1. public boolean onKey(View v, int keyCode, KeyEvent event)
復(fù)制代碼

       參數(shù)v:參數(shù)v為事件的事件源控件,。
       參數(shù)keyCode:參數(shù)keyCode為手機(jī)鍵盤的鍵盤碼。
       參數(shù)event:參數(shù)event便為鍵盤事件封裝類的對象,,其中包含了事件的詳細(xì)信息,,例如發(fā)生的事件、事件的類型等,。
       接下來同樣通過一個簡單的案例來介紹該接口的使用方法,,步驟如下。

效果圖:
2.jpg


       準(zhǔn)備字符串資源,。同樣打開strings.xml文件,,用下列代碼替換其原有代碼。

Java代碼:

  1. <xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="textView">使用鍵盤中的ABCD鍵控制四個按鈕 string>
  4. <string name="app_name">Sample<string>
  5. <resources>
復(fù)制代碼

       開發(fā)主邏輯代碼,,打開Sample.java文件,,用下列代碼替代其原有代碼。

Java代碼:

  1. package eoe.demo;
  2. //聲明所在包
  3. import android.app.Activity;
  4. //引入相關(guān)類
  5. //該處省略了部分包的引入代碼,,讀者可自行查閱隨書光盤中的源代碼
  6. import android.widget.TextView;
  7. //引入相關(guān)類
  8. public class Sample extends Activity implements OnKeyListener,OnClickListener{
  9. ImageButton[] imageButtons = new ImageButton[4];
  10. //聲明按鈕數(shù)組
  11. TextView myTextView;
  12. //聲明TextView的引用
  13. @Override
  14. public void onCreate(Bundle savedInstanceState) {
  15. //重寫的onCreate方法
  16. super.onCreate(savedInstanceState);
  17. this.setContentView(R.layout.main);
  18. //設(shè)置當(dāng)前顯示的用戶界面
  19. myTextView = (TextView) this.findViewById(R.id.myTextView);
  20. //得到myTextView的引用
  21. imageButtons[0] = (ImageButton)this.findViewById(R.id.button01);
  22. //得到button01的引用
  23. imageButtons[1] = (ImageButton) this.findViewById(R.id.button02);
  24. //得到button02的引用
  25. imageButtons[2] = (ImageButton)this.findViewById(R.id.button03);
  26. //得到button03的引用
  27. imageButtons[3] = (ImageButton)this.findViewById(R.id.button04);
  28. //得到button04的引用
  29. for(ImageButton imageButton : imageButtons){
  30. imageButton.setOnClickListener(this);
  31. //添加單擊監(jiān)聽
  32. imageButton.setOnKeyListener(this);
  33. //添加鍵盤監(jiān)聽
  34. }
  35. }
  36. @Override
  37. public void onClick(View v) {
  38. //實現(xiàn)了接口中的方法
  39. if(v.getId() == R.id.button01){
  40. //改變的是button01時
  41. myTextView.setText("您點擊了按鈕A,!");
  42. }
  43. else if(v.getId() == R.id.button02){
  44. //改變的是button02時
  45. myTextView.setText("您點擊了按鈕B");
  46. }
  47. else if(v.getId() == R.id.button03){
  48. //改變的是button03時
  49. myTextView.setText("您點擊了按鈕C");
  50. }
  51. else if(v.getId() == R.id.button04){
  52. //改變的是button04時
  53. myTextView.setText("您點擊了按鈕D");
  54. }
  55. else{
  56. //其他情況
  57. myTextView.setText("");
  58. }
  59. }
  60. @Override
  61. public boolean onKey(View v, int keyCode, KeyEvent event) {
  62. //鍵盤監(jiān)聽
  63. switch(keyCode){
  64. //判斷鍵盤碼
  65. case 29:
  66. //按鍵A
  67. imageButtons[0].performClick();
  68. //模擬單擊
  69. imageButtons[0].requestFocus();
  70. //嘗試使之獲得焦點
  71. break;
  72. case 30:
  73. //按鍵B
  74. imageButtons[1].performClick();
  75. //模擬單擊
  76. imageButtons[1].requestFocus();
  77. //嘗試使之獲得焦點
  78. break;
  79. case 31:
  80. //按鍵C
  81. imageButtons[2].performClick();
  82. //模擬單擊
  83. imageButtons[2].requestFocus();
  84. //嘗試使之獲得焦點
  85. break;
  86. case 32:
  87. //按鍵D
  88. imageButtons[3].performClick();
  89. //模擬單擊
  90. imageButtons[3].requestFocus();
  91. //嘗試使之獲得焦點
  92. break;
  93. }
  94. return false;
  95. }

  96. }
復(fù)制代碼

       第6~7行聲明TextView的引用并創(chuàng)建按鈕數(shù)組。
       第9~21行重寫了Activity的onCreate方法,,在該方法中先設(shè)置當(dāng)前的用戶界面,然后得到各個控件的引用并為各個控件添加監(jiān)聽,。
       第22~35行實現(xiàn)了接口中的onClick方法,,在方法中,根據(jù)事件源的ID判斷是哪個按鈕被按下,,然后設(shè)置myTextView的文字,。
       第36~57行實現(xiàn)了接口中的onKey方法,,在方法中,根據(jù)鍵盤碼的不同執(zhí)行不同的代碼,,當(dāng)A鍵被按下時,,模擬點擊一下按鈕0(第40行),在后嘗試使該按鈕獲得焦點(第41行),。其他按鍵被按下時處理方法相同,。

       此時運行該案例,觀察效果如圖7-13所示,,當(dāng)點擊手機(jī)鍵盤上的A,、B、C,、D鍵時,,相當(dāng)于點擊ABCD按鈕。

效果圖:
3.jpg

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多