键盘隐藏在onActivityResult之后

时间:2014-07-15 10:54:21

标签: android

我正在开发聊天应用程序。当我点击拍照按钮时,我的键盘出现并开始新的意图。当我拍照并返回聊天应用程序时,键盘被隐藏。我希望键盘能够出现。

其他人有这个问题吗?

谢谢!

4 个答案:

答案 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);