當前位置:首頁 » 安卓系統 » android獲取按鍵

android獲取按鍵

發布時間: 2022-09-19 13:49:19

A. 在android中怎樣獲取Button上的值放到Textview中

具體操作如下:

Button bt =(Button)findViewById(R.id.button1);

TextView tx=(TextView)findViewById(R.id.textView1);

tx.setText(bt.getText());

getText()就是獲取按鈕上的文字,在TextView中顯示出來

B. android如何獲得所按下按鍵編號

在Activity中重寫onKeyDown方法即可,當按鈕按下時會回調onKeyDown方法。

1. 以下是java代碼:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}

2. onKeyDown方法中傳遞了兩個參數 keyCode及event,其中 keyCode就是按鈕的編號。

3. int code = keyCode 即可判斷是哪個按鈕按下了。

C. 請問下Android4.0怎麼捕捉按鍵(返回鍵),哪個好心人可以指導下

這個很簡單,需要一個回調函數onKeyDown,在你按返回鍵就會調用這個函數。具體代碼如下
public boolean onKeyDown(int keyCode, KeyEvent event){
if (keyCode == KeyEvent.KEYCODE_BACK) {//假如是點擊的返回鍵 Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);//實現點擊home鍵的效果
return true;// 返回true表示你已經完成了對返回鍵的處理,不需要系統再為你處理,
//假如你返回false就點擊返回就依然會像你沒寫這段代碼一樣得效果
} } return super.onKeyDown(keyCode, event);

}

D. 如何獲取android手機三個硬按鍵的狀態信息

處於系統安全性,android阻止了onkey裡面home和power鍵的截獲
只能捕獲到back鍵

因此home和power只能通過其它辦法截獲了,

1.@Override
2. public boolean onKeyDown(int keyCode, KeyEvent event) {
3. if (keyCode == KeyEvent.KEYCODE_HOME) {
4. return true;
5. } else {
6. return super.onKeyDown(keyCode, event);
7. }
8. }
9.
10.@Override
11. public void onAttachedToWindow() {
12. this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
13. super.onAttachedToWindow();
14. }
這個辦法雖然能捕獲到home按鍵,但是按home時,不會回到android主屏幕

最好的辦法還是通過廣播去監聽了, 去網上查查home截獲資料大堆

E. 如何捕獲android系統按鍵事件

下面是android學習手冊中關於按鍵的介紹,例子,文檔、源碼都可以看,360手機助手中下載

在Android系統中,存在多種界面事件,如點擊事件、觸摸事件、焦點事件和菜單事件等,在這些界面事件發生時,Android界面框架調用界面控制項的事件處理方法對事件進行處理。
Android系統界面事件的傳遞和處理遵循以下規則。
·如果界面控制項設置了事件監聽器,則事件將先傳遞給事件監聽器。
·如果界面控制項沒有設置事件監聽器,界面事件則會直接傳遞給界面控制項的其他事件處理方法。
·即使界面控制項設置了事件監聽器,界面事件也可以再次傳遞給其他事件處理方法。
·是否繼續傳遞事件給其他處理方法是由事件監聽器處理方法的返回值決定的。
·如果監聽器處理方法的返回值為true,表示該事件已經完成處理過程,不需要其他處理方法參與處理過程,這樣事件就不會再繼續進行傳遞。
·如果監聽器處理方法的返回值為false,則表示該事件沒有完成處理過程,或需要其他處理方法捕獲到該事件,事件會被傳遞給其他的事件處理方法。
在MVC模型中,控制器根據界面事件(UI Event)類型不同,將事件傳遞給界面控制項不同的事件處理方法。
·按鍵事件(KeyEvent)將傳遞給onKey()方法進行處理。
·觸摸事件(TouchEvent)將傳遞給onTouch()方法進行處理。
下面以EditText控制項中的按鍵事件為例,說明Android系統界面事件傳遞和處理過程。
假設EditText控制項已經設置了按鍵事件監聽器,當用戶按下鍵盤上的某個按鍵時,控制器將產生KeyEvent按鍵事件。Android系統會首先判斷EditText控制項是否設置了按鍵事件監聽器,因為EditText控制項已經設置按鍵事件監聽器OnKeyListener,所以按鍵事件先傳遞到監聽器的事件處理方法onKey()中,事件能夠繼續傳遞給EditText控制項的其他事件處理方法,完全根據onKey()方法的返回值來確定:如果onKey()方法返回false,事件將繼續傳遞,這樣EditText控制項就可以捕獲到該事件,將按鍵的內容顯示在EditText控制項中;如果onKey()方法返回true,將阻止按鍵事件的繼續傳遞,這樣EditText控制項就不能夠捕獲到按鍵事件,也就不能夠將按鍵內容顯示在EditText控制項中。
Android界面框架支持對按鍵事件的監聽,並能夠將按鍵事件的詳細信息傳遞給處理方法。為了處理控制項的按鍵事件,先需要設置按鍵事件的監聽器,並重載onKey()方法,示例代碼如代碼清單1所示。
代碼清單1 設置按鍵事件的監聽器,並重載onKey()方法
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
//過程代碼……
return true/false;
}
第1行代碼是設置控制項的按鍵事件監聽器。
第3行代碼的onKey ()方法中的參數:第1個參數View表示產生按鍵事件的界面控制項;第2個參數keyCode表示按鍵代碼;第3個參數KeyEvent則包含了事件的詳細信息,如按鍵的重復次數、硬體編碼和按鍵標志等。
第5行代碼是onKey()方法的返回值:返回true,阻止事件傳遞;返回false,允許繼續傳遞按鍵事件。
KeyEventDemo是一個說明如何處理按鍵事件的示例。
KeyEventDemo用戶界面如圖1所示。

圖1 KeyEventDemo用戶界面
從圖5-27中可以看出,最上方的EditText控制項是輸入字元的區域,中間的CheckBox控制項用來控制onKey()方法的返回值,最下方的TextView控制項用來顯示按鍵事件的詳細信息,包括按鍵動作、按鍵代碼、按鍵字元、UNICODE編碼、重復次數、功能鍵狀態、硬體編碼和按鍵標志。
界面的XML文件的代碼如代碼清單2所示
代碼清單2 界面XML文件
<EditText android:id="@+id/entry"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</EditText>
<CheckBox android:id="@+id/block"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回true,阻止將按鍵事件傳遞給界面元素" >
</CheckBox>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按鍵事件信息" >
</TextView>
在EditText中,當任何一個鍵按下或抬起時,都會引發按鍵事件。為了能夠使EditText處理按鍵事件,需要使用setOnKeyListener ()方法在代碼中設置按鍵事件監聽器,並在onKey()方法中添加按鍵事件的處理過程,代碼如代碼清單3所示。
代碼清單3 setOnKeyListener()
entryText.setOnKeyListener(new OnKeyListener(){
@Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
int metaState = keyEvent.getMetaState();
int unicodeChar = keyEvent.getUnicodeChar();
String msg = "";
msg +="按鍵動作:" + String.valueOf(keyEvent.getAction())+" ";
msg +="按鍵代碼:" + String.valueOf(keyCode)+" ";
msg +="按鍵字元:" + (char)unicodeChar+" ";
msg +="UNICODE:" + String.valueOf(unicodeChar)+" ";
msg +="重復次數:"+ String.valueOf(keyEvent.getRepeatCount())+" ";
msg +="功能鍵狀態:" + String.valueOf(metaState)+" ";
msg +="硬體編碼:" + String.valueOf(keyEvent.getScanCode())+" ";
msg +="按鍵標志:" + String.valueOf(keyEvent.getFlags())+" ";
labelView.setText(msg);
if (checkBox.isChecked())
return true;
else
return false;
}
在上述代碼中,第4行代碼用來獲取功能鍵狀態。功能鍵包括左Alt鍵、右Alt鍵和Shift鍵,當這3個功能鍵被按下時,功能鍵代碼metaState值分別為18、34和65;但沒有功能鍵被按下時,功能鍵代碼metaState值分別為0。
第5行代碼獲取了按鍵的Unicode值,而在第9行中,將Unicode轉換為了字元,顯示在TextView中。
第7行代碼獲取了按鍵動作,0表示按下按鍵,1表示抬起按鍵。第7行代碼獲取按鍵的重復次數,但當按鍵被長時間按下時,則會產生這個屬性值。
第13行代碼獲取了按鍵的硬體編碼,各硬體設備的按鍵硬體編碼都不相同,因此該值一般用於調試。
第14行獲取了按鍵事件的標志符。

F. android 開發 如何獲取全局按鍵記錄

通過鍵盤監聽來實現:
Activity中重寫這個方法:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//記住這個按鍵
}
}然後就通過keyCode來判斷按下的是哪個鍵。這樣做應該是可以的。

G. android:viewpager里如何獲取其子界面的按鈕並為其添加監聽器啊

方法,在viewpager的adapter裡面有一個方法可以獲取到當前的view,如下:
1 2 3 4 5 6 7 8 9 10 private View mCurrentView; @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { mCurrentView = (View)object; } public View getPrimaryItem() { return mCurrentView; }

ViewPager的adapter通過setPrimaryItem方法設置當前顯示子view.
將其保存下來就可以在後面通過自定義的getPrimaryItem來獲取到當前子view了。
裝監視器:把view裝進list,list載入到pageAdapter,給viewpager設置監聽,監聽的就是全部view,要實現這種圖片輪播(廣告欄效果),就是一句關鍵代碼viewPager.setCurrentItem(msg.arg1);,利用handler和thread,每隔幾秒改變item的下標。
viewPager.setAdapter(new MyAdapter());
viewPager.setOnPageChangeListener(onPageChangeListener);

H. Android如何在fragment的xml中添加按鈕,在MainActivity獲取按鈕

不建議直接獲取和直接操作,會造成內存泄露的。
你應該寫清楚獲取這個button要做什麼,然後通過介面來實現Activity和fragment之間的通信

熱點內容
微博緩存的圖片能清理嗎 發布:2025-01-11 11:01:49 瀏覽:306
文字加密器 發布:2025-01-11 11:01:08 瀏覽:453
vc60非靜態編譯 發布:2025-01-11 10:51:32 瀏覽:614
電腦上怎麼解壓縮文件 發布:2025-01-11 10:51:31 瀏覽:782
槍戰王者如何用賬號密碼登錄 發布:2025-01-11 10:30:56 瀏覽:936
mysql在linux下安裝 發布:2025-01-11 10:30:49 瀏覽:843
資料庫copy 發布:2025-01-11 10:26:06 瀏覽:533
unity清理緩存 發布:2025-01-11 10:25:23 瀏覽:466
優酷視頻雙擊上傳 發布:2025-01-11 10:24:41 瀏覽:963
存儲臍帶胎兒幹細胞 發布:2025-01-11 10:18:36 瀏覽:331