2012-05-08 36 views
8

我試圖禁用預測文本對於給定EditText,作爲解釋here,但我還是通過預測得到的自動完成...無法禁用預想

我有一個三星Galaxy S啓用XT9。

有人可以幫忙嗎?

<EditText 
    android:id="@+id/search_field" 
    android:layout_width="300dp" 
    android:layout_height="27dp" 
    android:background="@drawable/bg_searchfield" 
    android:hint="@string/search_hint" 
    android:imeOptions="actionSearch" 
    android:inputType="text|textNoSuggestions|textFilter"/> 

回答

19

this註釋SO問題表明XML屬性不適用於某些型號的工作,但在Java的方法就在這些情況下工作。所以,試試這個:

edittext.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); 

編輯:

正如下面的評論所說,這裏是一個XML的替代方案,已經工作:

android:inputType="textNoSuggestions|textVisiblePassword" 
+2

我必須設置安卓的inputType =「textNoSuggestions | textVisiblePassword」。我會接受你對答案的答案。謝謝。 – jul

+0

我試着用mEt_text.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);它爲我工作。 – Ankit

+0

這個答案有它的權衡。嘗試從使用此方法後的文本末尾刪除一個字母。您必須長按刪除鍵,當它開始刪除時,它將刪除所有文本。 –

5
android:inputType="textNoSuggestions|textVisiblePassword" 

該解決方案的工作,但你有要小心。如果設置了標記textVisiblePassword,則無法在HTC設備上切換鍵盤語言(可能原因在於Sense鍵盤)。

所以我不得不從代碼中設置的inputType和寫是這樣的:

public static int getInputTypeForNoSuggestsInput() { 
    if (android.os.Build.MANUFACTURER.equalsIgnoreCase("Samsung")) { 
     return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS 
       | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD; 
    } else { 
     return InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; 
    } 
+0

適合我。條件是否需要添加以上條款。 –