2014-02-20 54 views
0

比方说,当用户开始输入EditText时,自动完成不会出现,直到用户输入了20个字符为止。如何为我的EditText设置阈值?

我试着将下面的代码到布局XML文件,但它没有工作:

android:completionThreshold="20" 

我也试过在Java类此下列之一,但它也不能工作:

myedittext.setThreshold(20); 
// it says 'The method setThreshold(int) is undefined for the type EditText' 

编辑:

看来,我的问题可能会被如此误解,我想澄清:

用户在editText中输入一个单词。你知道1个字符左右后会出现自动完成吗?我不希望它很快出现......我的目标是让它只在用户键入一定数量的字符之后才出现......就是这样。

道歉误解。谢谢。

回答

2

您是否在使用AutoCompleteTextView而不是常规的EditText?这可能是问题所在,因为它是前者的completion threshold

但是,根据您最近更新的问题,输入类型为EditText,在用户键入X数字后(我从来没有尝试过)。这样的事情:

myEditText.addTextChangedListener(new TextWatcher() { 
    public void onTextChanged(CharSequence s, int start, 
      int before, int count) {} 

    public void beforeTextChanged(CharSequence s, int start, 
      int count, int after) {} 

    public void afterTextChanged(Editable s) { 
     String text = myEditText.getText().toString(); 
     int maxChar = 5; 

     // Suggest words if the word is long enough, 
     // or prevent suggestions if not log enough 
     int type = text.length() > maxChar ? 
       TYPE_TEXT_FLAG_AUTO_CORRECT : 
       TYPE_TEXT_FLAG_NO_SUGGESTIONS; 

     myEditText.setInputType(type); 
    } 
}); 

现在,这是一个问题,你试着看看是否适合你。

+0

我该如何使用它? – Fuchsia

+1

@Fuchsia:只需参考答案中的第一个链接。 – AndyFaizan

+0

我做了...我仍在寻找,但我不太明白> _ < – Fuchsia