如何触发软键盘?

时间:2010-02-05 17:40:41

标签: java android keyboard

如何触发软件键盘并为其添加听众?

3 个答案:

答案 0 :(得分:3)

要显示软键盘,您可以尝试:InputMethodManager.showSoftInput()

对于添加侦听器,您可以做的最好的事情是向TextChangedListener添加EditText以收听EditText视图中通过键盘发生的更改。

答案 1 :(得分:2)

我尝试了两个选项,但没有一个在模拟器中工作,正如我所说,我试图在长按菜单上弹出软键盘:

@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;
        }

    };

答案 2 :(得分:0)

您可以通过添加

从AndroidManifest.xml中执行此操作
<activity
    android:windowSoftInputMode="stateVisible" ... >
    ...
</activity>

但请注意:如果用户的设备连接了硬件键盘,则不会出现软输入法。   http://developer.android.com/training/keyboard-input/visibility.html