Android ListView对EditText输入的即时响应

Android ListView对EditText输入的即时响应,android,android-listview,Android,Android Listview,我正在用Android编写一本字典,它从editText获取输入,并在listView上显示数据库中的搜索结果。数据库包括一组单词和定义。以下是我编写的部分代码: mEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String query

我正在用Android编写一本字典,它从editText获取输入,并在listView上显示数据库中的搜索结果。数据库包括一组单词和定义。以下是我编写的部分代码:

mEditText.addTextChangedListener(new TextWatcher() {    
  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) {
      String query = getIntent().getStringExtra(SearchManager.QUERY);
      showResults(query);
  }
下面是showResults方法,它必须在listView上显示搜索结果:

private void showResults(String query) {
    Cursor cursor = getContentResolver().query(DictionaryProvider.CONTENT_URI, null, null, new String[] {query}, null);

    String[] from = new String[] { DictionaryDatabase.KEY_WORD, DictionaryDatabase.KEY_DEFINITION };
    int[] to = new int[] { R.id.word, R.id.definition };

    SimpleCursorAdapter words = new SimpleCursorAdapter(this, R.layout.result, cursor, from, to, RESULT_OK);

    mListView.setAdapter((ListAdapter)words);
}

但当我在editText中输入输入时,我看不到任何动态列出的结果。

请参阅我的答案中与listview筛选相关的部分。在这里获取数据库中的所有项目,然后使用筛选器避免反复查询数据库,这很昂贵。:)第三个参数应该是实际的selection子句,其中将插入
新字符串[]{query}
,而不仅仅是null,因为使用null您将只获得所有结果。