Soft Keyboard shows up on EditText focus ONLY once

后端 未结 5 633
無奈伤痛
無奈伤痛 2020-11-30 06:08

Thanks for reading.

I am facing a strange problem: My app behavior is such that when the Activity starts, I requestFocus() on an Edi

相关标签:
5条回答
  • 2020-11-30 06:33

    None of above work until i clear the forces textField.clearFocus(); before requesting focus, so my final code in onResume looks like this.

       @Override
        public void onResume() {
            super.onResume();
            Log.d(TAG, "onResume: ");
            resumed = true;
            textField.postDelayed(new Runnable() {
                @Override
                public void run() {
                    textField.clearFocus();
                    textField.requestFocus();
                    if (!editMode)
                        textField.getText().clear();
                    inputMathodType = SharedPref.read(SharedPref.KEY_INPUT_MATHOD_SHARED_PREF, -1);
                    setInputMethod();
    
                }
            }, 200);
        }
    
    0 讨论(0)
  • 2020-11-30 06:43

    You used the wrong view for showing the input window.

    EditText editText = (EditText) findViewById(R.id.editText);
    editText.requestFocus();
    InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    if(imm != null) {
        imm.showSoftInput(editText, 0); 
    }
    
    0 讨论(0)
  • 2020-11-30 06:45

    Try to open and hide inside a Runnable as,

    TO OPEN

                     ettext.requestFocus();
                     ettext.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            InputMethodManager keyboard = (InputMethodManager)
                            getSystemService(Context.INPUT_METHOD_SERVICE);
                            keyboard.showSoftInput(ettext, 0);
                        }
                    },200);
    

    TO CLOSE

                        ettext.requestFocus();
                        ettext.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            InputMethodManager keyboard = (InputMethodManager)
                            getSystemService(Context.INPUT_METHOD_SERVICE);
                            keyboard.hideSoftInputFromWindow(ettext.
                                                             getWindowToken(), 0);
                        }
                    },200);
    
    0 讨论(0)
  • 2020-11-30 06:48

    Used this coding in your Activity,It will hide your keyboard this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    0 讨论(0)
  • 2020-11-30 06:50

    try this:

    final InputMethodManager imm = (InputMethodManager)EnterWordsActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
        if (imm != null)
        {
            imm.toggleSoftInput(YOUE_EDTITE_TEXT.SHOW_FORCED,1);
        }
    
    0 讨论(0)
提交回复
热议问题