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

我有一个Edittext与清单中的android:windowSoftInputMode="stateVisible" 。 现在我开始活动时会显示键盘。 如何隐藏它? 我不能使用android:windowSoftInputMode="stateHidden因为当键盘是可见的,然后尽量减less应用程序,并恢复它的键盘应该是可见的。

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

但它没有工作。

使用以下function来显示/隐藏键盘:

 /** * Hides the soft keyboard */ public void hideSoftKeyboard() { if(getCurrentFocus()!=null) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } } /** * Shows the soft keyboard */ public void showSoftKeyboard(View view) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); view.requestFocus(); inputMethodManager.showSoftInput(view, 0); } 

在AndroidManifest.xml中:

  <activity android:name="com.your.package.ActivityName" android:windowSoftInputMode="stateHidden" /> 

或尝试

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)‌​; 

请检查这一点

只需要将两个属性添加到editText的父视图。

 android:focusable="true" android:focusableInTouchMode="true" 

尝试这个:

 <activity ... android:windowSoftInputMode="stateHidden|adjustResize" ... > 

看看这个更多的细节。

把它放在Activity标签的清单里

  android:windowSoftInputMode="stateHidden" 

要在新build活动启动或onCreate()onStart()等时隐藏软键盘,您可以使用下面的代码:

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

将以下文本添加到您的xml文件。

 <!--Dummy layout that gain focus --> <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical" > </LinearLayout> 

我希望这会起作用,我尝试了很多方法,但是这个方法对我来说是fragments 。 只要把这一行放在onCreateview / init。

 getActivity().getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
  Try this one also 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 } }); 

把这个代码放到你的java文件中,并在edittext上传递参数,

 private void setHideSoftKeyboard(EditText editText){ InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); } 

这就是我所做的:

 yourEditText.setCursorVisible(false); //This code is used when you do not want the cursor to be visible at startup yourEditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { v.onTouchEvent(event); // handle the event first InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm != null) { imm.hideSoftInputFromWindow(v.getWindowToken(), 0); // hide the soft keyboard yourEditText.setCursorVisible(true); //This is to display cursor when upon onTouch of Edittext } return true; } }); 

尝试这个。

首先在你的可search的XML字段(名称和提示等)把@stringstring,而不是文字string。

然后方法onCreateOptionsMenu ,它必须有一个ComponentName对象与您的包名称和您的完整的类名称(包名称) – 如果具有SearchView组件的活动是相同的显示search结果使用getComponentName() ,作为谷歌机器人开发人员说。

我尝试了很多解决scheme,经过很多工作,这个解决scheme为我工作。

你可以在AndroidManifest.xml中设置configuration

例:

 <activity android:name="Activity" android:configChanges="orientation|keyboardHidden" android:theme="@*android:style/Theme.NoTitleBar" android:launchMode="singleTop" android:windowSoftInputMode="stateHidden"/> 

使用以下代码在启动活动时首次隐藏软键盘

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