我有一个 EditText,我正在以编程方式将焦点传递给它。但是当我这样做时,我希望键盘也显示出来(然后在 EditText 失去焦点时下降)。现在,用户必须点击 EditText 才能显示键盘——即使 EditText 已经有了焦点。
问问题
43617 次
5 回答
23
<activity android:name=".YourActivity"
android:windowSoftInputMode="stateVisible" />
将此添加到清单文件...
于 2013-08-14T17:04:54.830 回答
19
这就是我显示键盘的方式:
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
于 2013-08-14T16:59:52.813 回答
7
将此设置为清单中的活动,以在屏幕包含 EditText 框时自动弹出键盘
<activity android:windowSoftInputMode="stateAlwaysVisible" ... />
要在失去焦点时隐藏键盘,请为 EditText 设置 OnFocusChangeListener 。
在 onCreate()
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);
}
}
}
于 2013-08-14T17:05:32.120 回答
6
要显示键盘,请使用以下代码。
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
要隐藏键盘,请使用下面的代码。et 是对 EditText 的引用
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
于 2013-08-14T17:00:54.313 回答
0
为了基于焦点侦听器执行此操作,您应该选择:
final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
}else{
imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
}
imm.toggleSoftInput(0, 0);
}
});
希望这可以帮助。
问候!
于 2013-08-14T17:04:41.663 回答