我正在尝试在创建活动时显示键盘。但键盘没有显示。
我正在使用Nexus_5_API_22_x86
模拟器
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ex);
EditText editText = (EditText) findViewById(R.id.ex);
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
editText.requestFocus();
}
可能是什么问题?
我也试过在启动时没有显示键盘:
@Override
public void onResume() {
super.onResume(); // Always call the superclass method first
TimerTask tt = new TimerTask() {
@Override
public void run() {
EditText editText = (EditText) findViewById(R.id.ex);
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
};
final Timer timer = new Timer();
timer.schedule(tt, 200);
}
答案 0 :(得分:1)
我做了一个例子来看看这个,并且对我有效的线是打开
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
这将关闭
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
修改:
我在三星Galaxy S4(真实设备)中试过我的例子
在模拟器中,键盘不会显示
答案 1 :(得分:0)
您是否曾尝试像这样设置requestFocus()
editText.requestFocus();
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);