活动开始时如何避免自动出现android键盘

我有一个EditText小部件的活动。 每次这个活动显示,我的EditText获得焦点和Android键盘出现。 我不想要这个 我不希望Android键盘自动显示。 我该怎么办?

我认为以下可能工作

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

我以前用过这种东西。

试试这个也 –

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

否则,在清单文件的活动中声明 –

 <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="stateHidden" > 

如果您已经使用了android:windowSoftInputMode来获取像adjustResizeadjustPan这样的值,那么可以将两个值组合使用:

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

这会在适当的时候隐藏键盘,但是在需要显示键盘时平移活动视图。

隐藏它使用主题的所有活动

 <style name="MyTheme" parent="Theme"> <item name="android:windowSoftInputMode">stateHidden</item> </style> 

设置主题

 <application android:theme="@style/MyTheme"> 

将这两个属性添加到您的父级布局(例如:线性布局,相对布局)

 android:focusable="false" android:focusableInTouchMode="false" 

它会做的伎俩:)

尝试在清单文件中声明它

 <activity android:name=".HomeActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysHidden" > 

只需在AndroidManifest.xml中添加即可

 <activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden"> </activity> 

如果您使用API​​级别21,则可以使用editText.setShowSoftInputOnFocus(false);

最好的解决scheme,粘贴你的课堂

 @Override public void onResume() { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onResume(); } @Override public void onStart() { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onStart(); } 

隐藏键盘的function。

 public static void hideKeyboard(Activity activity) { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } 

隐藏AndroidManifext.xml文件中的键盘。

 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme" android:windowSoftInputMode="stateHidden"> 
 //to hide the soft keyboard InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 

当您的活动开始时,EditText是获得Focus的第一个视图时,会发生这种情况。 因此,只需将初始焦点设置为其他视图,就可以可靠地解决此问题。 你可以在XML中做到这一点,不需要代码。

例:

 <Button android:id="@+id/mybutton"> <requestFocus /> </Button>