选择项目时,AutoCompleteTextView下拉列表不会隐藏

时间:2013-06-06 09:48:25

标签: android

当用户在AutoCompleteTextView中键入内容时,我在异步任务中从服务器获取数据。我在AutoCompleteTextView中使用TextWatcher添加了addTextChangedListener。当成功获取数据然后使用setAdapter()方法将其显示为下拉列表时,现在用户单击结果数据,此数据将输入文本观察器,但下拉列表甚至可供用户看到。那么当用户选择一个条目时如何隐藏这个下拉列表呢?

发生此行为是因为当用户从下拉列表中选择一个项目,然后再次调用TextWatcher.onTextChanged()并且此调用发送一个新请求。所以这个下拉列表再次显示新的结果。

AutoCompleteTextView sourceEditTxt = (AutoCompleteTextView)findViewById(R.id.sourceEditTxt);
sourceEditTxt.addTextChangedListener(new TextWatcher()
        {    
            public void onTextChanged(CharSequence s, int start, int before, int count) 
            {
                new AsyncSuggestion().execute();
            }
            public void beforeTextChanged(CharSequence s, int start, int count,int after) 
            {}
            public void afterTextChanged(Editable s) 
            {}
        });

AsyncTask onPostExecuteCode:

ArrayAdapter<String> sourceAutoCompleteAdapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_dropdown_item_1line,/*suggestion array list*/);
sourceEditTxt.setAdapter(sourceAutoCompleteAdapter);
sourceAutoCompleteAdapter.notifyDataSetChanged();

0 个答案:

没有答案