Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何触发软键盘?_Java_Android_Keyboard - Fatal编程技术网

Java 如何触发软键盘?

Java 如何触发软键盘?,java,android,keyboard,Java,Android,Keyboard,如何触发软键盘并向其按键添加侦听器?要显示软键盘,您可以尝试:InputMethodManager.showSoftInput() 至于添加侦听器,您最好将TextChangedListener添加到EditText中,以侦听通过键盘在EditText视图中所做的更改。要显示软键盘,您可以尝试:InputMethodManager.showSoftInput() 至于添加监听器,您最好将TextChangedListener添加到EditText中,以收听通过键盘在EditText视图中所做的更

如何触发软键盘并向其按键添加侦听器?

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


至于添加侦听器,您最好将
TextChangedListener
添加到
EditText
中,以侦听通过键盘在
EditText
视图中所做的更改。

要显示软键盘,您可以尝试:
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;
        }

    };

我尝试了两个选项,但没有一个在emulator中起作用,正如我所说,我正在尝试在长按菜单上弹出软键盘:

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

您可以通过添加

<activity
    android:windowSoftInputMode="stateVisible" ... >
    ...
</activity>

我试过这样做:当我在地图视图中按下长菜单按钮时,向我展示软键盘。。但当我按menu时,应用程序崩溃了:这就是我在proggy中写的内容:InputMethodManager showSoftInput;公共布尔onKeyDown(int-keyCode,KeyEvent-event){switch(keyCode){case-KeyEvent.keyCode_菜单:showSoftInput.showSoftInput(mapView,0);break;case-KeyEvent.keyCode_1://放大mc.zoomIn();break;case-KeyEvent.keyCode_2://缩小mc.zoomOut();break;case-KeyEvent.keyCode_4://向左滚动mc.scrollBy(-4,0);break;case KeyEvent.KEYCODE_5://向右滚动mc.scrollBy(4,0);break;}返回super.onKeyDown(KEYCODE,event);}怎么了?将其添加到第一行:InputMethodManager showSoftInput=(InputMethodManager)this.getSystemService(Context.INPUT\u METHOD\u SERVICE);哦,我的眼睛。。。请不要在注释中添加那么多代码。编辑原始问题以添加该代码。此外,长时间按下菜单按钮应始终导致软键盘显示。如果它导致应用程序崩溃,请提供堆栈跟踪。。。在你最初的问题中。哦,很抱歉,我会在下次(关于代码添加)时注意到它。关于你用长按菜单所说的。。我试过了。。但它就是不起作用。。这场压榨是与其他东西有关的。现在已经修好了。但如果我只按长菜单。。它没有出现。。不是在模拟器中,也不是在真实的手机上。我在mapview活动中试过了。为什么它没有出现?谢谢,伊丹。我试过这样做:当我在地图视图中按长菜单按钮时,给我看软键盘。。但当我按menu时,应用程序崩溃了:这就是我在proggy中写的内容:InputMethodManager showSoftInput;公共布尔onKeyDown(int-keyCode,KeyEvent-event){switch(keyCode){case-KeyEvent.keyCode_菜单:showSoftInput.showSoftInput(mapView,0);break;case-KeyEvent.keyCode_1://放大mc.zoomIn();break;case-KeyEvent.keyCode_2://缩小mc.zoomOut();break;case-KeyEvent.keyCode_4://向左滚动mc.scrollBy(-4,0);break;case KeyEvent.KEYCODE_5://向右滚动mc.scrollBy(4,0);break;}返回super.onKeyDown(KEYCODE,event);}怎么了?将其添加到第一行:InputMethodManager showSoftInput=(InputMethodManager)this.getSystemService(Context.INPUT\u METHOD\u SERVICE);哦,我的眼睛。。。请不要在注释中添加那么多代码。编辑原始问题以添加该代码。此外,长时间按下菜单按钮应始终导致软键盘显示。如果它导致应用程序崩溃,请提供堆栈跟踪。。。在你最初的问题中。哦,很抱歉,我会在下次(关于代码添加)时注意到它。关于你用长按菜单所说的。。我试过了。。但它就是不起作用。。这场压榨是与其他东西有关的。现在已经修好了。但如果我只按长菜单。。它没有出现。。不是在模拟器中,也不是在真实的手机上。我在mapview活动中试过了。为什么它没有出现?谢谢你,伊丹。