0

編集テキストフィールドがフォーカスを取得したときにソフトキーボードを開くのに問題があります。デバイスでは動作しますが、エミュレータでは動作しません。setOnFocusedChangedListenerを処理しようとしていますが、コードが呼び出されていると思います。また、画面の下部に灰色のバーが表示されます。

誰かが私に何を探すべきかについていくつかのヒントを与えることができますか?これは私が試しているタイプのことです:

    mainPassEdit =  (EditText)mainPrefsPasswordDialog.findViewById(R.id.prefs_main_pass_dialog_edit_text);
    mainPassEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                Log.v(TAG, "has focus");
                InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                mgr.toggleSoftInput(0, 0);

            }
        }
4

2 に答える 2

0

実際のデバイスではなくエミュレータに問題がある場合は、エミュレートされたデバイスの設定を確認してください。Android Virtual Device Manager > Device Definitions > [Device] > Edit... で、ボタンが「ハードウェア」ではなく「ソフトウェア」に設定されていることを確認します。ハードウェア キーボードでデバイスをエミュレートしている場合、キーボードはポップアップしません。

于 2012-11-30T16:01:40.043 に答える
0

このバージョンの書き込みを試しましたか:

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);

EditText を直接参照することで、表示と EditText へのリンクをより細かく制御できます。

于 2012-11-30T16:04:18.013 に答える