
------------------------------------------------------TextVIEw TextVIEw--------------------------------------------------TextVIEw TextVIEw----------------------------------------------------TextVIEw TextVIEw-------------------------------------------------------TextVIEw TextVIEw----------------------------------------------------
因此可以使用androID中的searchvIEw在@R_502_6818@vIEw的每个组件上搜索我的搜索内容.
例如,如果我输入searchvIEw“bob”.然后它将检查所有4 textvIEw中的bob并给你更新的结果….
解决方法 是的,这是可能的,并且可以使用SearchVIEw实现.您的适配器应该实现Filterable,它的getFilter()方法将具有您的过滤条件.我在Actionbar中使用SearchVIEw来显示此功能.
我的活动 –
public class MyActivity extends Sherlock@R_502_6818@Activity implements OnqueryText@R_502_6818@ener { private MyMessage myMessage; // @R_502_6818@ item,which is a model class in my case private @R_502_6818@VIEw m@R_502_6818@VIEw; private MessageAdapter mAdapter; /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionbar().setdisplayHomeAsUpEnabled(true); setContentVIEw(R.layout.layout_containing_@R_502_6818@VIEw); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { //Create the search vIEw SearchVIEw searchVIEw = new SearchVIEw(getSupportActionbar().getthemedContext()); m@R_502_6818@VIEw = get@R_502_6818@VIEw(); m@R_502_6818@VIEw.setTextFilterEnabled(true); setupSearchVIEw(searchVIEw); menu.add(0,1,null) .setIcon(R.drawable.ic_search) .setActionVIEw(searchVIEw) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_ColLAPSE_ACTION_VIEW); return super.onCreateOptionsMenu(menu); } private voID setupSearchVIEw(SearchVIEw mSearchVIEw) { mSearchVIEw.setIconifIEdByDefault(false); mSearchVIEw.setsubmitbuttonEnabled(false); mSearchVIEw.setonqueryText@R_502_6818@ener(this); mSearchVIEw.setqueryHint("Search Sender"); } @OverrIDe public boolean onqueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { m@R_502_6818@VIEw.clearTextFilter(); } else { m@R_502_6818@VIEw.setFilterText(newText); } return true; } @OverrIDe public boolean onqueryTextsubmit(String query) { return false; }} 我的适配器 –
public class MessageAdapter extends BaseAdapter implements Filterable { @R_502_6818@<MyMessage> msgs@R_502_6818@; @R_502_6818@<MyMessage> mOriginalValues; @R_502_6818@<String> m@R_502_6818@Item; // any key of MyMessage Model Class MyMessage message; public MessageAdapter(@R_502_6818@<MyMessage> msg@R_502_6818@) { super(); this.msgs@R_502_6818@ = msg@R_502_6818@; } …. …. … @OverrIDe public Filter getFilter() { /** * A filter object which will * filter message key * */ Filter filter = new Filter() { @SuppressWarnings("unchecked") @OverrIDe protected voID publishResults(CharSequence constraint,FilterResults results) { msgs@R_502_6818@ = (@R_502_6818@<MyMessage>) results.values; // has the filtered values notifyDataSetChanged(); // notifIEs the data with new filtered values. Only filtered values will be shown on the @R_502_6818@ } @OverrIDe protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); // Holds the results of a filtering operation for publishing @R_502_6818@<MyMessage> FilteredArr@R_502_6818@ = new Array@R_502_6818@<MyMessage>(); if (mOriginalValues == null) { mOriginalValues = new Array@R_502_6818@<MyMessage>(msgs@R_502_6818@); // saves the original data in mOriginalValues } if(m@R_502_6818@Item == null){ m@R_502_6818@Item = new Array@R_502_6818@<String>(); for(MyMessage message : mOriginalValues){ m@R_502_6818@Item.add(message.getMessage()); } } /** * * If constraint(CharSequence that is received) is null returns the mOriginalValues(Original) values * else does the Filtering and returns FilteredArr@R_502_6818@(Filtered) * **/ if (constraint == null || constraint.length() == 0) { /* CONTRACT FOR IMPLEMENTING FILTER : set the Original values to result which will be returned for publishing */ results.count = mOriginalValues.size(); results.values = mOriginalValues; } else { /* Do the filtering */ constraint = constraint.toString().tolowerCase(); for (int i = 0; i < m@R_502_6818@Item.size(); i++) { String data = m@R_502_6818@Item.get(i); if (data.tolowerCase().startsWith(constraint.toString())) { FilteredArr@R_502_6818@.add(mOriginalValues.get(i)); } } // set the Filtered result to return results.count = FilteredArr@R_502_6818@.size(); results.values = FilteredArr@R_502_6818@; } return results; } }; return filter; }} 为方便起见,我的模型类MyMessage –
public class MyMessage implements Parcelable{ private String messageKey = ""; private String key = ""; private String key2 = ""; //getters and setters} 总结 以上是内存溢出为你收集整理的searchview如何在android中为listView工作?全部内容,希望文章能够帮你解决searchview如何在android中为listView工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)