我需要在用户单击按钮后显示软件键盘。现在我隐藏键盘并在用户单击按钮后显示它,但是当用户单击Edit-text时,键盘显示自己。我有两个按钮,当用户点击第一个按钮时,他看到软件键盘,当他点击第二个按钮时,软件键盘隐藏,他看到控制片段,控制编辑文本。当用户看到控件片段并点击编辑文本时,显示软件键盘。我需要它来显示这个软装键盘。软装键盘应该只在用户点击第一个按钮时显示
我怎么能停止软键盘显示,但有它仍然工作时,点击按钮?
set editText.setFocusable(false);
initial and on button click use editText.setFocusable(true);
andeditText.requestFocus();
这对你有帮助。
editText.setInputType(InputType.TYPE_NULL);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
要强制显示软键盘,可以使用
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
和删除焦点的EditText,遗憾的是,你需要有一个虚拟视图来抓取焦点。
我希望这对你有帮助要关闭它,可以使用
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);