2011-09-10 213 views
0

好的,所以我有一个期望从2到6个数字输入的活动。当用户完成时,按下按钮开始处理,然后显示中间结果。问题是 ,我无法让键盘消失,它覆盖了显示结果的Scrollable区域。按下按钮后隐藏键盘

我使用 confirmButton.setOnClickListener(新View.OnClickListener(){ 公共无效的onClick(查看视图){

 //hide keyboard : 
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

     // do stuff 
     } 
    }); 

但这并不隐藏键盘。 我已经使用确认按钮 - 因为一些输入是可选的,所以我不能依靠焦点改变监听器或类似的东西,是在按钮的视图内影响我的能力,隐藏在父窗口的键盘的能力?

或是另一种更险恶的事情吗?

我可以点击后退按钮和键盘叶子,或者我可以通过所有预期的输入点击“下一步”,然后点击键盘的“确定”,但是这会强制用户做非自然的事情。

任何想法?

回答

4

要隐藏软键盘,必须使用InputMethodManager。这里有一个例子:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editConfirmPass.getWindowToken(), 0);

+0

的作品 - 非常感谢! – Martin