【发布时间】:2011-01-13 15:02:56
【问题描述】:
如何触发软键盘并为其按键添加监听器?
【问题讨论】:
如何触发软键盘并为其按键添加监听器?
【问题讨论】:
要显示软键盘,您可以尝试:InputMethodManager.showSoftInput()
至于添加侦听器,您能做的最好的事情就是将TextChangedListener 添加到EditText 以侦听通过键盘在EditText 视图中所做的更改。
【讨论】:
我尝试了两个选项,但它们都没有在模拟器中工作,正如我所说,我正在尝试在长按菜单上弹出软键盘:
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_MENU)
{
showSoftInput.getInputMethodList();
showSoftInput.toggleSoftInput(showSoftInput.SHOW_FORCED, 0);
return true;
}
return super.onKeyLongPress(keyCode, event);
}
第二个选项:
View.OnLongClickListener mLongClickListener = new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
Configuration config = RouteMapActivity.this.getResources()
.getConfiguration();
if (config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES)
{
InputMethodManager imm = (InputMethodManager) RouteMapActivity.this
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mapView, InputMethodManager.SHOW_IMPLICIT); // .SHOW_FORCED);
}
return false;
}
};
【讨论】:
您可以在您的 AndroidManifest.xml 中添加
<activity
android:windowSoftInputMode="stateVisible" ... >
...
</activity>
但请注意:如果用户的设备连接有硬件键盘,则不会出现软输入法。 http://developer.android.com/training/keyboard-input/visibility.html
【讨论】: