Android中控制虛擬鍵盤

來源:互聯網
上載者:User

 

  1 package com.dome;  
2
3 import android.app.Activity;
4 import android.content.Intent;
5 import android.os.Bundle;
6 import android.view.KeyEvent;
7 import android.view.View;
8 import android.view.WindowManager;
9 import android.view.inputmethod.InputMethodManager;
10 import android.widget.Button;
11 import android.widget.Toast;
12
13 /**
14 * 這是一個控制虛擬鍵盤的Dome
15 *
16 * @author wuxin
17 *
18 */
19 public class KeyCodeDomeActivity extends Activity {
20
21 // 自定一個可以開啟虛擬鍵盤的按鈕
22 private Button button;
23
24 /** Called when the activity is first created. */
25 @Override
26 public void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.main);
29
30 // 獲得它的資源
31 button = (Button) findViewById(R.id.button1);
32
33 // 設定它的監聽事件
34 button.setOnClickListener(new View.OnClickListener() {
35
36 @Override
37 public void onClick(View v) {
38 // TODO Auto-generated method stub
39
40 // 獲得修飾鍵盤的類的對象
41 InputMethodManager imm = (InputMethodManager) KeyCodeDomeActivity.this
42 .getSystemService(INPUT_METHOD_SERVICE);
43
44 // 開啟(自動控制的再次點擊按鈕就會消失的)
45 imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
46 }
47 });
48
49 }
50
51 /**
52 * 當觸發點擊按鈕事件後(僅限於虛擬鍵盤、返回鍵、Home鍵、菜單鍵....)
53 */
54 @Override
55 public boolean onKeyDown(int keyCode, KeyEvent event) {
56 // TODO Auto-generated method stub
57
58 /*
59 * 判斷是否點擊的按鍵是返回鍵/注意添加許可權:android.permission.BIND_INPUT_METHOD
60 */
61 if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
62
63 Toast.makeText(KeyCodeDomeActivity.this, "我是返回鍵",
64 Toast.LENGTH_SHORT).show();
65
66 return true;// 一定要設定為true否則回回退
67
68 }
69
70 /*
71 * 判斷是否點擊的按鍵是Home鍵/注意添加許可權:android.permission.DISABLE_KEYGUARD
72 * 重點:一定要加上下面的onAttachedToWindow()方法
73 */
74 if (KeyEvent.KEYCODE_HOME == keyCode) {
75
76 Toast.makeText(getApplicationContext(), "我是Home鍵",
77 Toast.LENGTH_SHORT).show();
78
79 return true;
80
81 }
82
83 /*
84 * 判斷是否點擊的按鍵是menu鍵
85 */
86 if(KeyEvent.KEYCODE_MENU == keyCode){
87
88 Toast.makeText(getApplicationContext(), "我是Menu鍵",
89 Toast.LENGTH_SHORT).show();
90
91 return true;
92
93 }
94
95 /*
96 * 判斷是否點擊的按鍵是搜尋鍵
97 */
98 if(KeyEvent.KEYCODE_SEARCH == keyCode){
99
100 Toast.makeText(getApplicationContext(), "我是搜尋鍵",
101 Toast.LENGTH_SHORT).show();
102
103 return true;
104
105 }
106
107
108 return super.onKeyDown(keyCode, event);
109 }
110
111 /*
112 * (non-Javadoc)
113 * @see android.app.Activity#onAttachedToWindow()
114 */
115 public void onAttachedToWindow() {
116 this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
117 super.onAttachedToWindow();
118 }
119
120 }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.