0

因为是promptView而不是Activity,所以不能去Manifest隐藏键盘。我搜索了谷歌,发现了类似的主题,但我不知道如何让它发挥作用。

LayoutInflater li = LayoutInflater.from(this);
View promptsView = li.inflate(R.layout.prompt_firstime, null);

final EditText nameInput = (EditText) promptsView.findViewById(R.id.prompt_name);
final EditText emailInput = (EditText) promptsView.findViewById(R.id.prompt_email);

InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputManager.hideSoftInputFromWindow(nameInput.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
inputManager.hideSoftInputFromWindow(emailInput.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

AlertDialog alertDialog = new AlertDialog.Builder(Menu.this).create();  
alertDialog.setTitle("Title");  
alertDialog.setView(promptsView);
// etc

我究竟做错了什么?谢谢。

4

3 回答 3

0

试试这个方法,只需在调用时传递您的活动上下文

public static void hidekeypad(Activity activity)
    {
        @SuppressWarnings("static-access")
        InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    }
于 2013-10-25T11:50:15.887 回答
0

尝试以下..它在我的情况下有效:)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(your_edit_text.getWindowToken(), 0);
于 2013-10-25T11:52:35.157 回答
0

试试这个,它可能会解决你的问题。

your_activityName.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
于 2013-10-25T11:33:33.797 回答