首页 > 编程知识 正文

c语言实例代码,onix示例代码编写

时间:2023-05-05 03:26:03 阅读:169259 作者:276

安卓输入框实时模糊搜索

许多开发场景都使用搜索框实时模糊搜索,以允许用户输入内容。 请参照图

这种做法是在EditText字符发生变化时弹出ListPopupwindow来更新列表,谷歌已经被封装为AutoCompleteTextView

使用方法

mautocompletetextview.set adapter (adapter;

mautocompletetextview.setfocus able (true;

mautocompletetextview.setonitemclicklistener (newadapterview.onitemclicklistener () {

@Override

publicvoidonitemclick (adapterviewparent,View view,int position,long id ) {

}

);

适配器定制

要使Adapter继承BaseApdater,必须实现文件接口

privateclasssearchadapterextendsbaseadapterimplementsfilterable {

私有上下文m上下文;

publicsearchadapter (上下文上下文) {

super (;

this.mContext=context;

}

@Override

公共获取计数

if(msearchcustomentities==null({ ) (

返回0;

} else {

returnmsearchcustomentities.size (;

}

}

@Override

publicobjectgetitem (int position ) {

if(msearchcustomentities==null({ ) (

返回空值;

} else {

returnmsearchcustomentities.get (position;

}

}

@Override

publiclonggetitemid (int position ) {

返回位置;

}

@Override

publicviewgetview(intposition,View convertView,ViewGroup parent ) {

ViewHolder holder=null;

转换视图==null (if ) {

holder=new ViewHolder (;

convert view=layoutinflater.from (m context ).inflate (r.layout.item _ search _ custom,null,false );

holder.tag=(textview ) convert view.findviewbyid (r.id.TV _ custome _ type );

holder.name=(textview ) convert view.findviewbyid (r.id.custom _ name );

holder.phone=(TextView ) convert view.findviewbyid (r.id.TV _ phone );

convertview.settag(holder;

} else {

holder=(viewholder ) convertView.getTag );

}

holder.phone.settext (msearchcustomentities.get ) position ).phone );

holder.name.settext (msearchcustomentities.get (position ).name );

msearchcustomentities.get (position ).type==customer type.temporary _ customer.gettype ) }

holder.tag.set visibility (view.visible;

holder.tag.settext (m context.getstring (r.string.tag _ temp ) );

holder.tag.settext color (m context.get resources ).getcolor (r.color.customer _ temp _ txt ) );

holder.tag.set background (m context.get resources ).get drawable.rawable.BG _ solid _ quote _ type _ inneeee

} else if (msearchcustomentities.get (position ).type==customer type.collective _ unit.gettype () )。

holder.tag.set visibility (view.visible;

holder.tag.settext (m context.getstring ) r.string.tag_unit;

holder.tag.settext color (m context.get resources ).getcolor (r.color.customer _ unit _ txt ) );

holder.tag.set background (m context.get resources ).get drawable.rawable.BG _ solid _ quote _ type _ inneeee

} else if (msearchcustomentities.get (position ).type==customer type.outer _ motorcade.gettype () )。

holder.tag.set visibility (view.visible;

holder.tag.settext (m context.getstring ) r.string.tag_car;

holder.tag.settext color (m context.get resources ).getcolor (r.color.customer _ car _ txt ) );

holder.tag.set background (m context.get resources ).get drawable.rawable.BG _ solid _ quote _ type _ inneeee

} else {

holder.tag.set visibility (view.gone );

}

return convertView;

}

@Override

公共过滤器过滤器

if(mfilter==null ) {

mFilter=new ArrayFilter (;

}

返回m过滤器;

}

private class ViewHolder { (

textview标签;

TextView name;

TextView phone;

}

自定义筛选器

privateclassarrayfilterextendsfilter {

@Override

保护性文件保护

filterresultsresults=newfilterresults (;

stringprefixstring=prefix.tostring (;

//筛选部分

xbc client.getcustomlist (prefix string,new EntitiesObserver ) )。

@Override

protectedvoidongot (list entities,String msg,int errCode ) {

if (实体!=nullEntities.size(0) {

mSearchCustomEntities.clear (;

msearchcustomentities.addall (entities;

msearchadapter.notifydatasetchanged (;

}else{

msearchcustomentities=nullmsearchcustomentities.size {

mSearchCustomEntities.clear (;

msearchadapter.notifydatasetinvalidated (

}

}

}

);

results.values=msearchcustomentities;

results.count=msearchcustomentities.size (;

返回结果;

}

总结

到此为止,这里介绍了关于Android输入框实时模糊搜索效果的示例代码的文章。 更多相关安卓输入框实时模糊搜索内容,请搜索自由发展网以前的文章,或继续阅读以下相关文章。 今后,请多多支持自由开发网。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。