如何在文本更改时显示AutoCompleteTextView的下拉菜单?

时间:2012-06-13 21:07:10

标签: android android-layout

我尝试了一些变体,其中之一:

tv.addTextChangedListener(new TextWatcher() {
  @Override
  public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
  @Override
  public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    tv.showDropDown();
  }
  @Override
  public void afterTextChanged(Editable editable) {}
});

但是,下拉建议立即显示和隐藏(看起来像眨眼)。编辑文本后有没有办法显示下拉?

我还添加了一个按钮(用于测试)并添加了一个onclick监听器,它调用了tv.showDropDown();方法,它运行良好,我的预期(这意味着(恕我直言),没有问题BaseAdapter,Filter等。

2 个答案:

答案 0 :(得分:1)

我不认为你必须做这一切..自动完成应该像自动..

因为你必须告诉它必须用于自动完成的数据,并且你已经完成了。您无需手动执行tv.showDropDown()

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
textView.setAdapter(adapter);

其中COUNTRIES是一个字符串数组

看这里http://developer.android.com/resources/tutorials/views/hello-autocomplete.html

答案 1 :(得分:0)

看看@我的答案..当您获得更新的数据时,通过重置文本非常简单...

autoRailwayFrom.setText(autoRailwayFrom.getText());

https://stackoverflow.com/a/15044017/1136023