AutoCompleteTextView检测用户编辑的列表中的选定条目

时间:2013-03-12 08:15:03

标签: android list autocompletetextview onitemclicklistener onkeydown

我有AutoCompleteTextView我用来从长列表中选择一个项目。用户应该只能从列表中选择预定的项目。他们不应该进入他们自己的项目。

我检查以确保他们只提交列表中的项目的方法是使用setOnItemClickListener来触发布尔标志。问题是在布尔标志设置为true后,他们仍然可以编辑项目的选定文本。我需要检测到这一点并再次将布尔标志设置为false。我该怎么做呢。我看到了使用onKeyDown的建议,但我不确定如何实现它。

3 个答案:

答案 0 :(得分:46)

您可以添加文本已更改的侦听器:

autoCompleteTextView.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

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

    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

答案 1 :(得分:0)

实施TextWatcher,它会为您提供3种方法,当有人更改文本时,这些方法会不断收到回电。 如果字符串增长,您的用户将再次自己键入。

答案 2 :(得分:-1)

使用

AutoCompleteTextView#setOnItemSelectedListener() 

- 像魅力一样。