如何在不单击后退按钮的情况下隐藏键盘

时间:2017-04-24 05:37:08

标签: android

我在应用程序中使用了一个edittext,一旦我完成输入,键盘想要自动隐藏而无需按下后退按钮。任何人都可以帮助我....

4 个答案:

答案 0 :(得分:1)

Edittext中尝试使用此代码,您将获得自行关闭键盘的选项....

  

机器人:imeOptions = “actionDone”

答案 1 :(得分:1)

你应该使用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) {

        }
    });

}

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

试试吧。

答案 2 :(得分:1)

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

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);
    }
}

答案 3 :(得分:1)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

editText.requestFocus();

imm.showSoftInput(editText, 0);

试试这个(在editText中你应该放置自己的editText)。