3

onKeyDown イベントから返されたログがあり、フラグの結果は 520 になりました。フラグの内容を確認するにはどうすればよいですか? 520 = 512 + 8 = FLAG_TRACKING + FLAG_FROM_SYSTEM と仮定します

確かに知る必要があり、16進コードと関係があると聞きました。変換して調べる方法は?

ログから:

onKeyUp - キーコード: 118 | info: KeyEvent{action=ACTION_UP code=118 repeat=0 meta=0 scancode=766 mFlags=520}

mFlags の名前を知る必要があります。

ありがとうございました。

4

3 に答える 3

1

完全なコードは次のとおりです。

Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | isCanceled: " + event.isCanceled() + " | info: "  + event.toString());

        if ((event.getFlags() & KeyEvent.FLAG_FROM_SYSTEM) == KeyEvent.FLAG_FROM_SYSTEM)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_FROM_SYSTEM");

        }else {}

        if ((event.getFlags() & KeyEvent.FLAG_TRACKING) == KeyEvent.FLAG_TRACKING)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_TRACKING");
        }else {}



        ///FLAG_WOKE_HERE
        if ((event.getFlags() & KeyEvent.FLAG_WOKE_HERE) == KeyEvent.FLAG_WOKE_HERE)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_WOKE_HERE");
        }else {}


        //FLAG_SOFT_KEYBOARD
        if ((event.getFlags() & KeyEvent.FLAG_SOFT_KEYBOARD) == KeyEvent.FLAG_SOFT_KEYBOARD)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_SOFT_KEYBOARD");
        }else {}

        //FLAG_KEEP_TOUCH_MODE
        if ((event.getFlags() & KeyEvent.FLAG_KEEP_TOUCH_MODE) == KeyEvent.FLAG_KEEP_TOUCH_MODE)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_KEEP_TOUCH_MODE");
        }else {}


        //FLAG_EDITOR_ACTION
        if ((event.getFlags() & KeyEvent.FLAG_EDITOR_ACTION) == KeyEvent.FLAG_EDITOR_ACTION)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_EDITOR_ACTION");
        }else {}


        //FLAG_CANCELED
        if ((event.getFlags() & KeyEvent.FLAG_CANCELED) == KeyEvent.FLAG_CANCELED)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_CANCELED");
        }else {}


        //FLAG_VIRTUAL_HARD_KEY
        if ((event.getFlags() & KeyEvent.FLAG_VIRTUAL_HARD_KEY) == KeyEvent.FLAG_VIRTUAL_HARD_KEY)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_VIRTUAL_HARD_KEY");
        }else {}

        //FLAG_LONG_PRESS
        if ((event.getFlags() & KeyEvent.FLAG_LONG_PRESS) == KeyEvent.FLAG_LONG_PRESS)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_LONG_PRESS");
        }else {}

        //FLAG_CANCELED_LONG_PRESS
        if ((event.getFlags() & KeyEvent.FLAG_CANCELED_LONG_PRESS) == KeyEvent.FLAG_CANCELED_LONG_PRESS)
        {

            Log.i("==BCR==", "onKeyDown - keycode: " + keyCode + " | FLAG: FLAG_CANCELED_LONG_PRESS");
        }else {}
于 2011-08-25T19:00:20.583 に答える
0

これを行うと確認できます

if (mFlags & FLAG_TRACKING == FLAG_TRACKING)
     // it contains FLAG_TRACKING
if (mFlags & FLAG_FROM_SYSTEM == FLAG_FROM_SYSTEM)
     // its contains FLAG_FROM_SYSTEM flag.
if ... etc...
于 2011-08-18T18:15:38.790 に答える
0

キーダウン イベントが発生したときに定数値を単純に出力してみませんか。

http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_NUMPAD_DOT

于 2011-08-18T18:15:42.737 に答える