2012-05-16 45 views
0

工作,我有onkeylistener事件的一個問題,我的代碼是這樣的onkeylistener不上的ImageButton

public void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pnt_articulo); 
    imbAgregarArt = (ImageButton)findViewById(R.id.imbAgregarArt); 
    imbAgregarArt.setOnKeyListener(key); 
} 

OnKeyListener key = new OnKeyListener() { 
    @Override 
public boolean onKey(View v, int keyCode, KeyEvent event) { 
    if(event.getAction() == KeyEvent.ACTION_DOWN) { 
    Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show(); 
    return true; 
     } 
     return false; 
    } 
}; 

我使用調試停在吐司線不進入

請幫助

+0

使用'OnClickListener' –

+0

感謝薩米爾,我錯了,我嘗試做的是聽點擊按鈕 – japuentem

回答

2

你在做什麼是聽重要事件,這意味着鍵盤按等,併爲此目的,你的代碼是完全正確的。確保選中ImageButton,然後按任意鍵,將出現Toast

因爲這是一個非常奇怪的行爲,你一個OnClickListener後大概是:

.... 
    imbAgregarArt.setOnClickListener(click); 
} 

OnClickListener click = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show(); 
    } 
}; 

請注意,我們已經改變了OnKeyListenerOnClickListener,第一個監聽鍵盤活動,而第二個通過點擊它們聽用戶與對象的交互,或者用手指(按)或者用觸控板或者任何設備可以做的選擇。

作爲sido筆記 如果您好奇爲什麼即使您按下鍵盤按鍵,另一個按鈕也不能正常工作,問題來自視圖沒有集中的事實。爲了聆聽它內部的鍵盤事件,他們首先需要被選中,這聽起來合乎邏輯嗎?

+0

感謝thisMayhem這就是我需要什麼 – japuentem