我想通过从 RESTful Web 服务获取列表来定期更改 AutoCompleteTextview 给出的建议,并且无法使其顺利运行。我设置了一个硬编码的建议列表,以确保它正常工作:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, new String[] {"Hi", "Ho"});
speciesName.setAdapter(adapter);//my autocomplete tv
我在 textview 上有一个 TextWatcher,当文本更改时,它会启动一个非阻塞调用以获取新的建议列表——这部分获取新列表的工作正常。然后我想重置适配器,如下所示:
public void setOptionsAndUpdate(String[] options) {
Log.d(TAG, "setting options");
//speciesName.setAdapter((ArrayAdapter<String>)null);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, options);
speciesName.setAdapter(adapter);
}
此方法被调用,但不起作用——建议列表要么消失,要么显示的建议保持不变,尽管调用setAdapter.
这甚至是正确的方法吗?我查看了SimpleCursorAdapter但看不到如何将我的网络服务注册为内容提供者。(格式为http://www.blah.com/query?term=XX,其中 XX 是我的应用程序的输入,响应是 JSON 字符串数组。)