有没有什么办法从Java类更改android:windowSoftInputMode值?

我想要执行我的选项卡为每个选项卡具有不同的windowSoftInputMode属性。 如果从一个单一的活动完成你的标签的所有处理,如何从Java类访问此属性?

有什么办法从Java代码访问这个清单属性?

使用以下命令更改活动的softInputMode。

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

使用以下内容更改EditText的softInputtypes。

 mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE); 

感谢@Eliezer进行更正

根据Prasham的评论 ,我做到了这一点,并挽救了我的生命,感谢他! EditTextSoftWindowInput模式是相当错误的,当你有一个ScrollView SoftWindowInput的布局,你是dynamic填充它。

由于我已经阅读了这篇文章,但仍然继续阅读其他答案/评论(如Prashan的一篇),所以我决定写一篇新文章。

在我使用ScrollView的代码下面:

 Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

我的目标是使用两种不同的标签模式。 模式是SOFT_INPUT_ADJUST_RESIZESOFT_INPUT_ADJUST_NOTHING

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

上面的代码行本身不起作用。 应用程序始终处于ADJUST_NOTHING状态。 但是,如果windowSoftInputMode="adjustResize"被插入到AndroidManifest.xml文件的<activity>标签中,则应用程序窗口将被调整为默认值。 另外,当你打电话下面的行

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

它会像预期的那样行事,没有任何东西被重新调整。

PS改进的答案

您可以以编程方式使用以下代码

 android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

谢谢迪帕克