0

アクティビティでソフト キーボードが機能しませんか? ただし、ホームボタンまたはシステムUIボタンを押した後、戻るボタンを除いて、正常に起動します。

@Override
public boolean onKeyUp(int keyCode, final KeyEvent event) {
    final int finalKeyCode = keyCode;
    View lView = mParent.lET.findFocus();
    if(lView == mParent.lET)
    {
        if(keyCode == KeyEvent.KEYCODE_ENTER)
        {
            this.mGLThread.androidHideSoftKeyboard();
        }
        else
        {
            mParent.lET.bringToFront();
            mParent.lET.onKeyUp(finalKeyCode, event);
            mPlayerName = mParent.lET.getText().toString();
        }
    }

    return false;
}

ハードウェア ボタンはこの機能をトリガーしますが、ソフト キーボードは機能しませんでした。ありがとう。

4

3 に答える 3

0

onKeyUpは、ソフトキーではなくハードウェアキーを処理することになっています。そのため、このようなソフトキーボードのキー押下には対応できません。これを行うには、1つのことを行うことができます。EditTextセットTextChangedListenerで。サンプルコード

edit.addTextChangedListener(new TextWatcher(){
            public void afterTextChanged(Editable s) {

            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after){

            }
            public void onTextChanged(CharSequence s, int start, int before, int count){

            }

        });
于 2013-03-15T05:54:29.870 に答える
0

これを試してみてください

定義したリスナーをEditText

edittext.setOnEditorActionListener(new HideYourKeypad());

リスナーを定義する

    // Added try-catch just in case JellyBean has any other lurking errors
public class HideYourKeypad implements OnEditorActionListener {
    @Override
    public boolean onEditorAction(TextView view, int actionId,
            KeyEvent event) {
        try {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

            if (imm != null && view != null) {
                switch (actionId) {
                case EditorInfo.IME_NULL:
                    if ((event == null)
                            || (event.getAction() == KeyEvent.ACTION_DOWN))
                        imm.hideSoftInputFromWindow(view.getWindowToken(),
                                0);
                    return true;

                case EditorInfo.IME_ACTION_GO:
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                    return true;

                case EditorInfo.IME_ACTION_DONE:
                    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
                    return true;
                }
            }
        } catch (Throwable x) {
            Logger.warning(TAG, "Error hiding keyboard", x);
        }

        return false;
    }
}
于 2013-03-15T06:00:26.123 に答える
0

onKeyListener は、ソフト キーボードを介して Android 1.5 で完全に動作しました

Android 1.6 以降、文字キーと数字キーは onKey イベントを経由しませんが、DEL キーは経由します

于 2013-03-15T05:57:07.420 に答える