我有一个有两个输入的活动:一个用于城市,另一个用于位置。每当用户请求搜索操作时,我都将城市和位置信息存储在sqlite表中。
现在,我希望每当用户输入城市(这是一个自动提示)时,位置中的自动提示选项应自动更新。位置和城市的输入小部件都是AutoCompleteTextView。
如何做到这一点?
RGDS, 萨班
答案 0 :(得分:1)
你只需要向AutoCompleteTextView提供一个CursorAdapter,例如:一个SimpleCursorAdapter(虽然当我尝试使用SimpleCursorAdapter时有错误。)
Cursor cursor = getCityCursor();
int ids = int[]{R.id.autocomplete_list_item};
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,
R.layout.list_item, cursor, new String[]{DB.COL_CITIES});
AutoCompleteTextView actvCities = (AutoCompleteTextView)findViewById(R.id.cities);
actvCitites.setAdapter(cursorAdapter);
getCityCursor();
方法应该提供由SQLiteDatabase.query()
获得的游标。
更新:前面提到的“buggy”SimpleCursorAdapter不是。只需提供一个CursorToStringConverter
。 dan breslau写了一篇非常好的article about AutoCompleteTextView and the SimpleCursorAdapter here。