日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例

發布時間:2025/3/20 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

import android.view.KeyCharacterMap; //導入方法依賴的package包/類

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (LOG_KEY_EVENTS)

Log.i(EmulatorDebug.LOG_TAG, "onKeyDown(keyCode=" + keyCode + ", isSystem()=" + event.isSystem() + ", event=" + event + ")");

if (mEmulator == null) return true;

if (mClient.onKeyDown(keyCode, event, mTermSession)) {

invalidate();

return true;

} else if (event.isSystem() && (!mClient.shouldBackButtonBeMappedToEscape() || keyCode != KeyEvent.KEYCODE_BACK)) {

return super.onKeyDown(keyCode, event);

} else if (event.getAction() == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {

mTermSession.write(event.getCharacters());

return true;

}

final int metaState = event.getMetaState();

final boolean controlDownFromEvent = event.isCtrlPressed();

final boolean leftAltDownFromEvent = (metaState & KeyEvent.META_ALT_LEFT_ON) != 0;

final boolean rightAltDownFromEvent = (metaState & KeyEvent.META_ALT_RIGHT_ON) != 0;

int keyMod = 0;

if (controlDownFromEvent) keyMod |= KeyHandler.KEYMOD_CTRL;

if (event.isAltPressed()) keyMod |= KeyHandler.KEYMOD_ALT;

if (event.isShiftPressed()) keyMod |= KeyHandler.KEYMOD_SHIFT;

if (handleKeyCode(keyCode, keyMod)) {

if (LOG_KEY_EVENTS) Log.i(EmulatorDebug.LOG_TAG, "handleKeyCode() took key event");

return true;

}

// Clear Ctrl since we handle that ourselves:

int bitsToClear = KeyEvent.META_CTRL_MASK;

if (rightAltDownFromEvent) {

// Let right Alt/Alt Gr be used to compose characters.

} else {

// Use left alt to send to terminal (e.g. Left Alt+B to jump back a word), so remove:

bitsToClear |= KeyEvent.META_ALT_ON | KeyEvent.META_ALT_LEFT_ON;

}

int effectiveMetaState = event.getMetaState() & ~bitsToClear;

int result = event.getUnicodeChar(effectiveMetaState);

if (LOG_KEY_EVENTS)

Log.i(EmulatorDebug.LOG_TAG, "KeyEvent#getUnicodeChar(" + effectiveMetaState + ") returned: " + result);

if (result == 0) {

return true;

}

int oldCombiningAccent = mCombiningAccent;

if ((result & KeyCharacterMap.COMBINING_ACCENT) != 0) {

// If entered combining accent previously, write it out:

if (mCombiningAccent != 0)

inputCodePoint(mCombiningAccent, controlDownFromEvent, leftAltDownFromEvent);

mCombiningAccent = result & KeyCharacterMap.COMBINING_ACCENT_MASK;

} else {

if (mCombiningAccent != 0) {

int combinedChar = KeyCharacterMap.getDeadChar(mCombiningAccent, result);

if (combinedChar > 0) result = combinedChar;

mCombiningAccent = 0;

}

inputCodePoint(result, controlDownFromEvent, leftAltDownFromEvent);

}

if (mCombiningAccent != oldCombiningAccent) invalidate();

if (onAutoCompleteListener != null) {

if (event.isPrintingKey()) {

char printingChar = (char) event.getUnicodeChar(metaState);

if (printingChar != '\b') {

// ASCII chars

onAutoCompleteListener.onCompletionRequired(new String(new char[]{printingChar}));

}

}

}

return true;

}

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Java 怎么 get char_Java KeyCharacterMap.getDeadChar方法代码示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。