2010-07-31 121 views
15

我正在为android手机编写一个应用程序,并在我的启动画面后显示一个活动,其中有几个spinners和edittext视图。安卓应用程序开始虚拟键盘打开

在没有键盘的android设备上显示虚拟键盘,然后屏蔽该应用程序的其余部分,对我来说看起来不专业。我试图隐藏在activity.onCreate方法中的虚拟键盘,但无济于事。

我尝试的下一个选项是将onFocus侦听器设置为实际有问题的edittext视图,但仍无济于事。

如何防止在用户明确点击edittext视图之前显示虚拟键盘?是否有办法让旋转器的焦点之一,因为其中一个旋钮是在layout xml中的edittext视图之前?

回答

8

你可以试试这个:

的onCreate您的活动,设置输入类型TYPE_NULL。然后,onTouch将其设置为TYPE_CLASS_TEXT。

myText.setInputType(InputType.TYPE_NULL); 

    myText.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
     myText.setInputType(InputType.TYPE_CLASS_TEXT); 
     myText.onTouchEvent(event); // call native handler 
     return true; // consume touch even 
     } 
    }); 
+0

多谢你,现在我的应用程序的行为更专业。我注意到其他应用程序,如雅虎电子邮件应用程序以相同的方式工作,很高兴有应用程序看起来相似,以增加感觉和功能。 – jeep 2010-08-02 01:40:53

+2

如果这对你有效,你应该接受答案。 – 2010-08-05 05:14:23

+0

我相信这是一个很好的解决方法,但mportuesisf的答案是一个更好的解决方案。 – 2011-11-04 13:21:50

34

您可以尝试在AndroidManifest.xml文件中设置您的Activity条目的android:windowSoftInputMode属性。我认为将它设置为stateHidden可能会做你想要的。

这里的 docs from the Android site.

+0

这就是要走的路。至少为我工作。 – Emilio 2011-12-08 13:00:37