如何隐藏小键盘而无需单击后退按钮

这个问题在这里已经有了答案:

  • 关闭/隐藏Android软键盘69个答案

  • 你应该使用TextWatcher来知道你什么时候完成了输入,然后你可以隐藏键盘,如下所示:

     EditText editText;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        editText = (EditText)findViewById(R.id.editText);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
            }
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                if(count == 5){
    
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);}
    
            }
    
            @Override
            public void afterTextChanged(Editable s) {
    
            }
        });
    
    }
    

    因此在输入五个字符后的代码中,键盘会自动隐藏。

    尝试一下。


    只要输入完成,就调用这个函数

    InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
    //Hide:
    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
    
    private void hideKeyboard() {   
        // Check if no view has focus:
        View view = this.getCurrentFocus();
        if (view != null) {
            InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
            inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
        }
    }
    

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    
    editText.requestFocus();
    
    imm.showSoftInput(editText, 0);
    

    试试这个(在editText中,你应该把你自己的editText)。

    链接地址: http://www.djcxy.com/p/16609.html

    上一篇: How to hide Keypad without Clicking Back Button

    下一篇: Soft input keyboard not visible in Android