
这是我的Main_Activity.Java代码
array111.add(new Ashtable(test1,test2,test3,test4,test5,test6,test7,test8,test9,test10,test11,test12,test13,test14,test15,test16,test17,test18,test19,test20,test21,test22,test23,test24,test25,test26,test27,test28,test29,test30,test31,test32,test33,test34,test35,test36,test37,test38,test39,test40,test41,test42)); } } catch (JsONException e) { e.printstacktrace(); } final CustomListVIEwAdapter adapter = new CustomListVIEwAdapter(getActivity(),R.layout.home_List_vIEw,array111); lstv11.setAdapter(adapter); inputSearch.addTextChangedListener(new TextWatcher() { @OverrIDe public voID afterTextChanged(Editable arg0) { // Todo auto-generated method stub String text = inputSearch.getText().toString().tolowerCase(Locale.getDefault()); adapter.filter(text); } @OverrIDe public voID beforeTextChanged(CharSequence arg0,int arg1,int arg2,int arg3) { // Todo auto-generated method stub } @OverrIDe public voID onTextChanged(CharSequence arg0,int arg3) { // Todo auto-generated method stub } }); mSwipeRefreshLayout.setRefreshing(false); }} 这是我的CustomListVIEwAdapter.java代码
公共类CustomListVIEwAdapter extends ArrayAdapter实现Filterable {
ArrayList<Ashtable> prod;Context context;int resource;public CustomListVIEwAdapter(Context context,int resource,ArrayList<Ashtable> prod) { super(context,resource,prod); this.context=context; this.resource=resource; this.prod=prod;}@OverrIDepublic VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent){ if(convertVIEw==null){ LayoutInflater layoutInflater=(LayoutInflater)getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertVIEw=layoutInflater.inflate(R.layout.List_vIEw,null,true); } Ashtable pro=getItem(position); final String st1=pro.getCompname(); final String st2=pro.getPersonname(); final String st3=pro.getAddress(); final String st4=pro.getMailID(); final String st5=pro.getMob1(); final String st6=pro.getMob2(); final String st7=pro.getShowname(); final String st8=pro.getdispatchdate(); final String st9=pro.getdispatchtime(); final String st10=pro.getStatedate(); final String st11=pro.getStarttime(); final String st12=pro.getSetupdate(); final String st13=pro.getSetuptime(); final String st14=pro.getEnddate(); final String st15=pro.getEndtime(); final String st16=pro.getdismanteldate(); final String st17=pro.getdismanteltime(); final String st18=pro.getVenu(); final String st19=pro.getVenuaddress(); final String st20=pro.getBoardsize(); final String st21=pro.getoverallsqft(); final String st22=pro.getRatepersqft(); final String st23=pro.getTotalamt(); final String st24=pro.getTransport(); final String st25=pro.getStage(); final String st26=pro.getPower(); final String st27=pro.getothercost1(); final String st28=pro.getothercost2(); final String st29=pro.getGrossamt(); final String st30=pro.getBillrequired(); final String st31=pro.getBillinnameof(); final String st32=pro.getServicetax(); final String st33=pro.getTotalamt2(); final String st34=pro.getAdvanceamt(); final String st35=pro.getCreditperiod(); final String st36=pro.getPhotoname(); final String st37=pro.getPhotomob(); final String st38=pro.getPhotoemail(); final String st39=pro.getMarketingname(); final String st40=pro.getRemark(); TextVIEw txt1=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw11); txt1.setText(pro.getPersonname()); TextVIEw txt2=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw22); txt2.setText(pro.getMob1()); TextVIEw txt3=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw33); txt3.setText(pro.getShowname()); TextVIEw txt5=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw44); txt5.setText(pro.getStatedate()); TextVIEw txt4=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw6); txt4.setText(pro.getEnddate()); TextVIEw txt6=(TextVIEw)convertVIEw.findVIEwByID(R.ID.textVIEw55); txt6.setText(pro.getBoardsize()); TextVIEw txt7=(TextVIEw)convertVIEw.findVIEwByID(R.ID.teextVIEw); txt7.setText("( "+pro.getCompname()+" )"); button imgb=(button) convertVIEw.findVIEwByID(R.ID.imagebutton2); imgb.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { Intent intent = new Intent().setClass(getContext(),Full_info_page.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MulTIPLE_TASK); intent.putExtra("name1",String.valueOf(st1)); intent.putExtra("name2",String.valueOf(st2)); intent.putExtra("name3",String.valueOf(st3)); intent.putExtra("name4",String.valueOf(st4)); intent.putExtra("name5",String.valueOf(st5)); intent.putExtra("name6",String.valueOf(st6)); intent.putExtra("name7",String.valueOf(st7)); intent.putExtra("name8",String.valueOf(st8)); intent.putExtra("name9",String.valueOf(st9)); intent.putExtra("name10",String.valueOf(st10)); intent.putExtra("name11",String.valueOf(st11)); intent.putExtra("name12",String.valueOf(st12)); intent.putExtra("name13",String.valueOf(st13)); intent.putExtra("name14",String.valueOf(st14)); intent.putExtra("name15",String.valueOf(st15)); intent.putExtra("name16",String.valueOf(st16)); intent.putExtra("name17",String.valueOf(st17)); intent.putExtra("name18",String.valueOf(st18)); intent.putExtra("name19",String.valueOf(st19)); intent.putExtra("name20",String.valueOf(st20)); intent.putExtra("name21",String.valueOf(st21)); intent.putExtra("name22",String.valueOf(st22)); intent.putExtra("name23",String.valueOf(st23)); intent.putExtra("name24",String.valueOf(st24)); intent.putExtra("name25",String.valueOf(st25)); intent.putExtra("name26",String.valueOf(st26)); intent.putExtra("name27",String.valueOf(st27)); intent.putExtra("name28",String.valueOf(st28)); intent.putExtra("name29",String.valueOf(st29)); intent.putExtra("name30",String.valueOf(st30)); intent.putExtra("name31",String.valueOf(st31)); intent.putExtra("name32",String.valueOf(st32)); intent.putExtra("name33",String.valueOf(st33)); intent.putExtra("name34",String.valueOf(st34)); intent.putExtra("name35",String.valueOf(st35)); intent.putExtra("name36",String.valueOf(st36)); intent.putExtra("name37",String.valueOf(st37)); intent.putExtra("name38",String.valueOf(st38)); intent.putExtra("name39",String.valueOf(st39)); intent.putExtra("name40",String.valueOf(st40)); context.startActivity(intent); } }); return convertVIEw;}public voID filter(String charText) { charText = charText.tolowerCase(Locale.getDefault()); if (charText.length() == 0) { } else { } notifyDataSetChanged();} }
请帮助我使用此方法过滤器仅过滤人名或日期….提前谢谢
解决方法 根据此示例代码更改adapeter类,并专注于getFilter方法,尽管我已粘贴完整的适配器类供您参考.public class Customlistadapter extends BaseAdapter{ private Activity activity; private LayoutInflater inflater; private List<MovIE> movIEItems; private List<MovIE> movIEItemSearched = null; private List<MovIE> originalMovIEList; ImageLoader imageLoader = AppController.getInstance().getimageLoader(); public Customlistadapter(Activity activity,List<MovIE> movIEItems) { this.activity = activity; this.movIEItems = movIEItems; this.originalMovIEList = new ArrayList<MovIE>(movIEItems); this.movIEItemSearched = new ArrayList<MovIE>(); this.movIEItemSearched.addAll(movIEItems); } //Add Below Method public voID reloadData(){ this.originalMovIEList = new ArrayList<MovIE>(movIEItems); notifyDataSetChanged(); } @OverrIDe public int getCount() { return movIEItems.size(); } @OverrIDe public Object getItem(int location) { return movIEItems.get(location); } @OverrIDe public long getItemID(int position) { return position; } @OverrIDe public VIEw getVIEw(int position,VIEwGroup parent) { if (inflater == null) inflater = (LayoutInflater) activity .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (convertVIEw == null) convertVIEw = inflater.inflate(R.layout.List_row,null); if (imageLoader == null) imageLoader = AppController.getInstance().getimageLoader(); NetworkImageVIEw thumbnail = (NetworkImageVIEw) convertVIEw .findVIEwByID(R.ID.thumbnail); TextVIEw Title = (TextVIEw) convertVIEw.findVIEwByID(R.ID.Title); TextVIEw rating = (TextVIEw) convertVIEw.findVIEwByID(R.ID.rating); TextVIEw genre = (TextVIEw) convertVIEw.findVIEwByID(R.ID.genre); TextVIEw year = (TextVIEw) convertVIEw.findVIEwByID(R.ID.releaseYear); TextVIEw appuser = (TextVIEw) convertVIEw.findVIEwByID(R.ID.appuser); TextVIEw reg = (TextVIEw) convertVIEw.findVIEwByID(R.ID.reg);// linearLayout.LayoutParams layoutParams = new linearLayout.LayoutParams(100,100);// iv.setLayoutParams(layoutParams); // getting movIE data for the row MovIE m = movIEItems.get(position); // thumbnail image thumbnail.setimageUrl(m.getthumbnailUrl(),imageLoader); // Title Title.setText(m.getTitle()); // rating rating.setText(m.getrating()); // genre genre.setText(m.getGenre()); appuser.setText(m.getApp_user()); reg.setText(m.getReg()); year.setText(String.valueOf(m.getYear())); return convertVIEw; } public Filter getFilter(Componentname cn) { return new Filter() { @OverrIDe protected FilterResults performFiltering(CharSequence constraint) { String filterString = constraint.toString().tolowerCase(); FilterResults results = new FilterResults(); final List<MovIE> List = originalMovIEList; int count = List.size(); final ArrayList<MovIE> nList = new ArrayList<MovIE>(count); String filterableString1,filterableString2; /* for (int i = 0; i < count; i++) { filterableString = List.get(i).getTitle(); if (filterableString.tolowerCase().contains(filterString)) { // nList.add(filterableString); nList.add(List.get(i)); } } */ for (MovIE movIE: originalMovIEList) { filterableString1 = movIE.getTitle(); filterableString2 = movIE.getrating(); if (filterableString1.tolowerCase().contains(filterString)||filterableString2.tolowerCase().contains(filterString)) { // nList.add(filterableString); nList.add(movIE); } } results.values = nList; results.count = nList.size(); return results; } @SuppressWarnings("unchecked") @OverrIDe protected voID publishResults(CharSequence constraint,FilterResults results) { movIEItems.clear(); movIEItems.addAll((ArrayList<MovIE>) results.values); notifyDataSetChanged(); } }; }} 并在搜索视图中使用此方法:
@OverrIDe public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); // Inflate menu to add items to action bar if it is present. inflater.inflate(R.menu.main,menu); SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchVIEw search = (SearchVIEw) menu.findItem(R.ID.action_search).getActionVIEw(); search.setSearchableInfo(manager.getSearchableInfo(getComponentname())); search.setonqueryTextListener(new SearchVIEw.OnqueryTextListener() { @OverrIDe public boolean onqueryTextsubmit(String query) { return true; } @OverrIDe public boolean onqueryTextChange(String newText) { adapter.getFilter(getComponentname()).filter(newText); adapter.notifyDataSetChanged(); return false; } }); return true; } 总结 以上是内存溢出为你收集整理的android – 如何在自定义列表视图中搜索全部内容,希望文章能够帮你解决android – 如何在自定义列表视图中搜索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)