如何在活动开始时隐藏软键盘

162
我在Manifest中使用了android:windowSoftInputMode="stateVisible"属性的Edittext。现在当我启动这个Activity时,键盘会自动弹出。如何隐藏它?我不能使用android:windowSoftInputMode="stateHidden",因为当键盘可见时,最小化应用程序并恢复它后,键盘应该保持可见状态。 我尝试过以下代码,但是它没有起作用:

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

23个回答

1
Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);

Ed_Cat_Search.setInputType(InputType.TYPE_NULL);

Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
        Ed_Cat_Search.onTouchEvent(event); // call native handler
        return true; // consume touch even
    }
});

this one worked for me

1

请尝试这个。

首先,在可搜索的xml中,将字段(如名称和提示等)放置@string而不是文字字符串。

然后,在方法onCreateOptionsMenu中,必须有一个ComponentName对象,其中包含您的包名和已完成类名(带有包名)- 如果具有SearchView组件的活动与显示搜索结果的活动相同,请使用getComponentName(),正如Google Android开发人员所说。

我尝试了很多解决方案,经过很多工作后,这个解决方案对我起作用。


1
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

它会工作


虽然这段代码可能回答了问题,但是提供关于为什么和/或如何回答问题的额外上下文可以提高其长期价值。 - rollstuhlfahrer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接