[英]how to make keyevent that perform a click only if there is text
因此,我試圖為具有掃描按鈕的新設備設置按鍵事件,但我必須先將其與虛擬鍵盤一起使用,但是我無法使其與硬件按鍵一起使用
在版本為4.1的虛擬鍵盤上在其他設備上運行,但在版本為5.1的新設備上不運行
shelfnumberbox.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_NULL
&& event.getAction() == KeyEvent.ACTION_DOWN) {
btn_aprove.performClick();
}
return false;
}
});
}
我正在努力工作的
shelfnumberbox.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_NULL
&& event.getAction() == KeyEvent.KEYCODE_BUTTON_A) {
btn_aprove.performClick();
}
return false;
}
});
}
API的全功能硬件按鍵事件
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
switch (keyCode) {
case KeyEvent.KEYCODE_BUTTON_A:
if(isOnResume && scanCase != START_TEST_CASE){
mDecoderMgr.dispatchScanKeyEvent(event);
}
isScanKeyDown = false;
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
只需在執行click事件之前檢查是否有文本:
if (v.getText().toString().length() > 0) {
btn_aprove.performClick();
}
因此:
if (actionId == EditorInfo.IME_NULL
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if (v.getText().toString().length() > 0) {
btn_aprove.performClick();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.