我正在开发聊天应用程序。当我点击拍照按钮时,我的键盘出现并开始新的意图。当我拍照并返回聊天应用程序时,键盘被隐藏。我希望键盘能够出现。
其他人有这个问题吗?
谢谢!
答案 0 :(得分:1)
请使用此方法隐藏您的软键盘。从onactivity结果中调用此方法。
public static void hideSoftKeyboard(Activity context) {
InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputManager != null)
inputManager.hideSoftInputFromWindow(context.getWindow().getDecorView().getApplicationWindowToken(), 0);
context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
答案 1 :(得分:0)
要显示软键盘,请执行以下操作:
//Import this
import android.view.inputmethod.InputMethodManager;
//Create object
private InputMethodManager imm;
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY);
答案 2 :(得分:0)
就我而言,我需要在从图库中获取图片或通过相机拍摄图片后,在onActivityResult()
中打开键盘。
要使其正常工作,我必须将延迟设置为500毫秒。否则,它将无法打开键盘。
这是我在onActivityResult()
中的代码:
// Set original file name to description.
EditText etDescription = getView().findViewById(R.id.etAttachmentDescription);
etDescription.setText(fileName);
etDescription.selectAll();
etDescription.requestFocus();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Open keyboard after 500ms
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}, 500);
答案 3 :(得分:-1)
@ Badrul的解决方案对我有用,但我必须首先在编辑文本视图上requestFocus()
,但它工作得很好。
mEditText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY);