我单击按钮并使用软键盘启动活动:
当我点击取消按钮时,它会调用finish()退出到第一页。然后,当我再次启动活动时,我得到了这个:
带按钮的布局现在隐藏在键盘后面。
在另一种情况下,如果我这样做:
我得到图片1.按钮不会被隐藏。好像我必须在调用finish()之前销毁键盘。
如何解决这个问题?
编辑:添加了Manifest中的内容示例
<activity
android:name=".SignUp"
android:theme="@style/DefaultTitle" />
这也在我的清单中,我在阅读了其他一些帖子之后添加了它,对我来说不起作用。
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="7" />
好的大声笑。奇怪的发现。如果我这样做:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(cancel.getApplicationWindowToken(), 0);
try {
Thread.sleep(100);
} catch (Exception e) {
}
finish();
它有效!不确定这是否是一个好的解决方法......
答案 0 :(得分:0)
将此行放入您的活动代码中,让我知道发生了什么,
<activity android:windowSoftInputMode="stateVisible" . . . >
有关详细信息,请查看android:windowSoftInputMode
答案 1 :(得分:0)
我认为你正在使用STATE_ALWAYS_VISIBLE
显示SoftKeyBoard这就是为什么当你回到活动时它仍然可见。
所以尝试在按钮上打开键盘点击这样..
EditText editText = (EditText) findViewById(R.id.myEdit);
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// only will trigger it if no physical keyboard is open
mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
如果Manifest中有任何windowSoftInputMode
,请删除它们因为上述方法不需要它们。
答案 2 :(得分:0)
尝试在edittext的对象上使用setfocus方法