我有一个以编程方式传递焦点的EditText。但是当我这样做的时候,我希望键盘也能显示出来(然后当那个EditText失去焦点时就会下降)。现在,用户必须点击EditText才能显示键盘--即使EditText已经有了焦点。
发布于 2013-08-14 16:59:52
我就是这样展示键盘的:
EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
发布于 2013-08-14 17:04:54
<activity android:name=".YourActivity"
android:windowSoftInputMode="stateVisible" />
把这个添加到清单文件中..。
发布于 2013-08-14 17:05:32
将清单中的活动设置为在屏幕上显示EditText框时自动弹出键盘
<activity android:windowSoftInputMode="stateAlwaysVisible" ... />
若要隐藏丢失焦点的键盘,请为EditText设置一个EditText。
在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);
}
}
}
https://stackoverflow.com/questions/18237773
复制相似问题