【问题标题】:How to show soft-keyboard when MultiAutoCompleteTextView is focusedMultiAutoCompleteTextView 聚焦时如何显示软键盘
【发布时间】:2023-03-05 04:35:01
【问题描述】:

我已经尝试过通常的方法,但它不起作用:

multiEdit.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(multiEdit, InputMethodManager.SHOW_IMPLICIT);

注意我的getActivity()。那是因为我在 DialogFragment 中使用了MultiAutoCompleteTextView。而sn-p在onCreateView里面。

【问题讨论】:

    标签: android keyboard focus android-softkeyboard autocompletetextview


    【解决方案1】:

    以下内容对我来说可靠。它会自动聚焦视图。无需额外的工作。

    multiEdit.postDelayed(new Runnable() {
    
            @Override
            public void run() {
                multiEdit.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                        MotionEvent.ACTION_DOWN, 0, 0, 0));
                multiEdit.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
                        MotionEvent.ACTION_UP, 0, 0, 0));
    
            }
        }, 200);
    }
    

    【讨论】:

    • 在三星 Galaxy S9 上,您应该使用至少 400 毫秒。它看起来不是一个好的代码。
    【解决方案2】:

    试试

    multiEdit.requestFocus();
    getDialog().getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
    

    【讨论】:

    • 感谢您的帮助:+1。但我找到了一个对我来说非常可靠的方法。我会发布它。
    • 使用上面的代码时,我的所有布局中只有 TextViews、EditTexts 和 Buttons,我总是显示键盘。但是,如果某些东西对您有用,那么我现在知道还有另一种方法。
    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2016-05-04
    • 2017-10-23
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多