Android AutoCompleteTextView 结合CursorLoader

(个人经验,仅供参考,错误之处,敬请谅解)

自动完成文本(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;
            }
        };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值