当屏幕出现时如何去除字段的自动对焦/键盘popup?

我有一个屏幕,第一个字段是EditText,它在启动时获得焦点,还popup数字inputtypes,这是非常烦人的

我怎样才能确保当活动开始时没有获得重点,和/或input面板没有提高?

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

要么

在manifest文件中设置activity属性如下

 android:windowSoftInputMode="stateHidden" 

去你的应用程序清单文件,并写下你想要禁用自动键盘popup的活动的这一行。

 android:windowSoftInputMode="stateHidden" 

以编程方式不显示键盘,但默认小工具仍然接收焦点调用:

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

onResume()

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

onCreate()中调用上面的方法,除非用户tapping or clicking.selectEditText ,否则阻止显示softKeyboard tapping or clicking.

或者只需在Manifest.xml Activity标签中添加android:windowSoftInputMode="stateHidden"

有另一个视图抓住焦点。 默认情况下,当布局膨胀时,第一个可调焦视图将会获得焦点。 您可以通过XML请求关注不同的视图:

 <TextView android:layout_width="wrap_parent" android:layout_height="wrap_content" android:text="Some other view"> <requestFocus /> </TextView> 

这适用于任何视图。

如果你想以编程的方式做,你可以使用view.requestFocus()

这通常是一团糟。 我尝试的第一件事是尝试通过另一个视图偷取焦点。 您还必须拥有可调焦和可调焦的触摸模式。

 <TextView ... android:focusable="true" android:focusableInTouchMode="true"> <requestFocus/> </TextView> 

还没有尝试过,也不是我附近的编程计算机,但我怀疑编程发送焦点到父视图或某种性质可以做的伎俩 – 多数民众赞成更可能是一种解决方法,而不是一个解决方法,但又不能testing它只是一个想法

 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) { getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); }