2014-12-29 48 views
1

我在我的應用程序中使用MultiAutoCompleteTextView鍵盤的建議。這是Android API中的一個很棒的控件。但是我遇到了一些問題。其中最令人討厭的是,在我的Nexus 5上,它並沒有顯示鍵盤的建議。在Xperia Z上,雖然顯示鍵盤建議。無法找到原因。任何人都可以幫助/指導我嗎?這裏是我的MultiAutoCompleteTextView的XML。MultiAutoCompleteTextView沒有顯示

<MultiAutoCompleteTextView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:hint="Post a question, idea or update" 
    android:gravity="top" 
    android:textColorHint="#9e9e9e" 
    android:textColor="#000000" 
    android:textSize="15sp" 
    android:padding="10dp" 
    android:background="@null" /> 
+0

我的三星S4顯示鍵盤建議。如果我關閉預測文本(設置/我的設備/語言和輸入/預測文本)鍵盤建議不顯示。嘗試https://www.youtube.com/watch?v=8XnkrK_2Q1A – eurosecom

+0

我已經'EditText'在一些我的看法,他們表現出正常的建議。所以我認爲,它與設備設置無關。 – Ammar

回答

2

我特地到源代碼,發現這AutoCompleteTextView

// Always turn on the auto complete input type flag, since it 
    // makes no sense to use this widget without it. 
    int inputType = getInputType(); 
    if ((inputType&EditorInfo.TYPE_MASK_CLASS) 
      == EditorInfo.TYPE_CLASS_TEXT) { 
     inputType |= EditorInfo.TYPE_TEXT_FLAG_AUTO_COMPLETE; 
     setRawInputType(inputType); 
    } 

而且在定義爲InputTypeTYPE_TEXT_FLAG_AUTO_COMPLETE的javadoc的頁面。

標誌爲TYPE_CLASS_TEXT:文本編輯器(這意味着應用程序)的執行文本自動完成基於其自己的語義,它將呈現給用戶,因爲他們類型爲輸入。

這意味着你有自己的語義完成,這意味着鍵盤禁用它的建議是合乎邏輯的。

我認爲當你改變與setInputType()方法的inputType編程可以禁用此行爲,並獲取鍵盤的建議。

你可以試試這個:

mAutoCompletetextView.setInputType(EditText.TYPE_CLASS_TEXT | EditText.TYPE_TEXT_FLAG_AUTO_CORRECT);