2010-07-31 96 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