How can I trigger the software keyboard and add listeners to it\'s keys?
To display the soft keyboard you might try: InputMethodManager.showSoftInput()
As for adding listeners, the best you can do is add a TextChangedListener
to an EditText
to listen to the changes in the EditText
view that are made via the keyboard.
You can do this from your`s AndroidManifest.xml by adding
<activity
android:windowSoftInputMode="stateVisible" ... >
...
</activity>
But note: If the user's device has an attached hardware keyboard, the soft input method does not appear. http://developer.android.com/training/keyboard-input/visibility.html
Ive tried two options, but none of them worked in the emulator, as i said, i am trying to pop up soft keyboard on long-press menu:
@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);
}
second option:
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;
}
};