(个人经验,仅供参考,错误之处,敬请谅解)
自动完成文本(AutoCompleteTextView)
通常匹配数据量较小的情况下,可以使用数组资源、数组适配器。如果使用数据库数据匹配则需要使用CursorAdapter或者SimpleCusorAdaper
如果使用CursorLoader异步加载情况,则需要重写一些函数:
adapter = new CursorAdapter(this,null,0) {
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.city_list_item,null);
ViewHolder holder = new ViewHolder();
holder.name = view.findViewById(R.id.city_item);
view.setTag(holder);
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder)view.getTag();
String name = cursor.getString(cursor.getColumnIndex("name"));
holder.name.setText(name);
}
//重写结果显示
@Override
public CharSequence convertToString(Cursor cursor) {
return cursor.getString(cursor.getColumnIndex("name"));
}
//约束匹配
@Override
public Cursor runQueryOnBackgroundThread(CharSequence constraint) {
getLoaderManager().restartLoader(0,null,ChooseCityActivity.this);
return null;
}
final class ViewHolder{
TextView name;
}
};
308

被折叠的 条评论
为什么被折叠?



