如何设置EditText的阈值?

时间:2014-02-20 18:15:19

标签: android threshold

假设当用户开始输入EditText时,自动填充功能会在用户键入20个字符后才会显示?

我已尝试将以下代码放入布局XML文件中,但它不起作用:

android:completionThreshold="20"

我在Java类中也尝试过以下一个,但它也不起作用:

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

编辑:

看来我的问题可能会被误解,所以我想澄清一下:

用户在editText中键入一个单词。你知道在1个字符之后出现自动完成的方式吗?我不希望它出现这么快......我的目的是让它看起来只有在用户键入了一定数量的字符之后......这就是它。

对误解表示道歉。谢谢。

1 个答案:

答案 0 :(得分:2)

您使用的是AutoCompleteTextView而不是常规EditText吗?这可能是问题所在,因为它是前一个拥有completion threshold

的问题

但是,根据您对问题的最新更新,在用户键入X个字母后,我会立即输入EditText的输入类型(我从未尝试过)。像这样:

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);
    }
});

现在问题是你试着看看是否适合你。