簡體   English   中英

如何使僅在有文字的情況下執行單擊的按鍵事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM