以下代码行中的getWindow()
方法
this.getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
导致以下错误
无法解决方法' getWindow()'
错误的代码行位于此方法的底部
private void setButtonListener(Button button){
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String textString = editText.getText().toString();
textView.setText(textString);
editText.getText().clear();
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textView.getWindowToken(), 0);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
});
}
我希望我的editText
在键盘关闭时失去焦点。
我参加了一个活动课,所以我不确定问题是什么。 this
是否有getWindow()
方法?
答案 0 :(得分:1)
你可以像这样关闭软键盘
private void setButtonListener(Button button){
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String textString = editText.getText().toString();
textView.setText(textString);
editText.getText().clear();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),0);
}
});
}
如果您想切换
InputMethodManager im =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
im.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
答案 1 :(得分:1)
您可以使用OnFocusChangeListener隐藏软键盘并失去焦点
EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);
private class MyFocusChangeListener implements OnFocusChangeListener {
public void onFocusChange(View v, boolean hasFocus){
if(v.getId() == R.id.textbox && !hasFocus) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
}
答案 2 :(得分:0)
找到解决方案
活动:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
在片段中:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
答案 3 :(得分:0)
尝试此解决方案 - >只需在此之前添加类名称。
MainActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
答案 4 :(得分:0)
而不是this.getWindow()
使用YourActivity.this.getWindow()
试试这个:
YourActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);