android - Android:从其他活动跳回时自动打开屏幕键盘(软输入法)
问题描述
情况:
我有活动A
。它有一个领域。当用户按下“确定”时,它会打开 Activity B
,这只是一个确认对话框。B
现在,当用户在 Activity ( )中按下“取消”按钮时setResult(RESULT_CANCEL); finish();
,用户最终会回到 Activity A
。
此时我想再次显示键盘,因为用户唯一能做的就是编辑字段。
但由于某种奇怪的原因,它对我不起作用。我查看了这个讨论并尝试了设置
android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
在清单或呼叫中
inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
在onCreate()
or onStart()
oronResume()
中,但这些都不起作用。
我应该补充一点,这个问题只有在我“从其他活动返回”时才会出现。在向前导航期间创建活动时,键盘将按预期显示。
任何有关如何处理此问题的建议将不胜感激。
解决方案
请使用这个
@Override
protected void onResume() {
super.onResume();
mUserNameEdit.requestFocus();
mUserNameEdit.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
InputMethodManager keyboard = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(mUserNameEdit, 0);
}
},200); //use 300 to make it run when coming back from lock screen
}
推荐阅读
- c# - 为什么更改对象比例时不单击统一
- google-chrome - 如何从 Visual Studio 代码启动 Chrome?
- c++ - 如何使用 Opencv 按列对矩阵进行子采样
- c# - 检查元素是否在占位符c#下
- node.js - 猫鼬条件必填字段验证
- html - 在 navbar 下做一个 Div 填满所有空间
- javascript - 为什么 Vue-Router 不能与“.”一起使用 象征?
- c++ - 为什么编译器要向 lib 添加内联类方法?
- c# - 取消 Parallel.ForEach
- python - python asyncios create_task 和 await 函数