Android屏幕上的键盘自动popup

我的一个应用程序有一个“开放屏幕”(基本上是一个菜单),有一个EditText后面跟着几个EditText 。 问题是,我的几个用户报告说,当他们打开应用程序时,它会自动popup屏幕上的键盘,甚至没有他们触摸EditText 。 据我所知,所有这些用户都使用HTC Hero 。

这是1.5的错误吗? 有什么我可以做的吗?

您可以在活动的onCreate方法中使用以下代码行,以确保用户单击EditText时只popup键盘

 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 3.0,3.1,3.2,4.0 – 用于编译的编辑器(Eclipse 3.7)

将'windowSoftInputMode ='stateHidden''放置在应用程序的清单XML文件中,以便您希望软件键盘保持隐藏状态的每个活动。这意味着键盘不会自动popup,用户必须“点击”文本字段来提起来。 我花了将近一个小时的时间寻找一些有用的东西,所以我想分享一下。

在你的AndroidManifest.xml中添加这个:

 android:windowSoftInputMode="stateHidden|adjustResize" 

它完美的作品。 🙂

这段代码可以在所有的android版本上运行:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //Automatic popping up keyboard on start Activity getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); or //avoid automatically appear android keyboard when activity start getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); } 

你可以在activity的onCreate()方法中使用这个

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

或者将这些代码粘贴到AndroidManifest.xml的Activity标签中

 android:windowSoftInputMode="stateVisible" 

在该版本的Android中,当视图被夸大时,默认情况下,焦点将被设置为第一个可调焦控件 – 如果没有物理键盘,则会popup屏幕上的键盘。

为了解决这个问题,在其他地方明确地设置焦点。 如果将焦点设置为除EditText之外的其他任何项目,屏幕键盘将不会显示。

你有没有尝试在模拟器中运行Android 1.5testing?

您可以在Android Mainfest.xml的 activity标签下添加一行代码

  <activity android:name="com.sams.MainActivity" android:windowSoftInputMode="stateVisible" > </activity> 

这可能会帮助你。

你可以像编程那样做

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

或在AndroidManifest.xml中的<activity tag设置android:windowSoftInputMode="stateHidden"

 InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService); imm.ShowSoftInput(_enterPin.FindFocus(), 0); 

*这是用于Android.xamarin和FindFocus() – 它search当前拥有焦点的视图的层次结构中的视图,因为在上述代码之前有_enterPin.RequestFocus(),因此它显示_enterPin的键盘EditText *

这对我工作:

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