2014-12-29 38 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);