android中的SearchView在列表视图页脚显示查询文本
我已经在actionbar上实现了android的SearchView,用于搜索listview,一切正常,但SearchView中的查询文本显示如下所示 这是我写的代码android中的SearchView在列表视图页脚显示查询文本,android,android-listview,searchview,android-filterable,Android,Android Listview,Searchview,Android Filterable,我已经在actionbar上实现了android的SearchView,用于搜索listview,一切正常,但SearchView中的查询文本显示如下所示 这是我写的代码 searchView.setQueryHint("Query Hint"); searchView.setIconifiedByDefault(true); searchView.setOnQueryTextListener(this); 任何人请帮助我如何删除该视图 这是有关搜索视图的代码 public class Hom
searchView.setQueryHint("Query Hint");
searchView.setIconifiedByDefault(true);
searchView.setOnQueryTextListener(this);
任何人请帮助我如何删除该视图
这是有关搜索视图的代码
public class HomeScreen extends Activity implements SearchView.OnQueryTextListener{
....
OnCreate(){
...
listView.setAdapter(adapter);
listView.setTextFilterEnabled(true);
}
OnCreateOptionsMenu()
{...
setUpSearchView();
...}
private void setupSearchView() {
searchView.setQueryHint("Search Product");
searchView.setIconifiedByDefault(true);
searchView.setOnQueryTextListener(this);
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
listView.clearTextFilter();
} else {
listView.setFilterText(newText);
}
return true;
}
适配器代码如下所示
public class CustomListAdapter extends BaseAdapter implements Filterable{
private Activity activity;
private List<Product> productItems;
private List<Product> orig;
public CustomListAdapter(Activity activity, List<Product> productItems) {
this.activity = activity;
this.productItems = productItems;
}
@Override
public int getCount() {
return productItems.size();
}
@Override
public Object getItem(int location) {
return productItems.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ProductHolder productHolder;
....
return convertView;
}
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
final FilterResults filterResults = new FilterResults();
final List<Product> intermediateResults = new ArrayList<Product>();
if(orig == null)
orig = productItems;
if(constraint != null)
{
if(orig!=null && orig.size() > 0){
for (final Product g : orig) {
if (g.getTitle().toLowerCase().contains(constraint.toString()))
intermediateResults.add(g);
}
}
filterResults.values = intermediateResults;
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
productItems = (ArrayList<Product>) results.values;
notifyDataSetChanged();
}
};
}
}
公共类CustomListAdapter扩展BaseAdapter实现可过滤{
私人活动;
私人物品清单;
私人名单来源;
公共CustomListAdapter(活动,列出productItems){
这个。活动=活动;
this.productItems=productItems;
}
@凌驾
public int getCount(){
返回productItems.size();
}
@凌驾
公共对象getItem(int位置){
返回productItems.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
产品持有人产品持有人;
....
返回视图;
}
@凌驾
公共过滤器getFilter(){
返回新筛选器(){
@凌驾
受保护的筛选器结果性能筛选(CharSequence约束){
最终FilterResults FilterResults=新的FilterResults();
最终列表中间结果=新的ArrayList();
if(orig==null)
orig=产品项;
if(约束!=null)
{
if(orig!=null&&orig.size()>0){
适用于(最终产品g:原版){
如果(g.getTitle().toLowerCase().contains(constraint.toString()))
中间结果添加(g);
}
}
filterResults.values=中间结果;
}
返回过滤器结果;
}
@凌驾
受保护的void publishResults(CharSequence约束、FilterResults结果){
productItems=(ArrayList)results.values;
notifyDataSetChanged();
}
};
}
}
您能再显示一些代码吗?首先是因为lv.setTextFilterEnabled(true)
或类似的东西。。。如果您使用的是SearchView,则无需设置this@JonasCz添加了代码。。请帮我解决这个问题this@Selvin没有listView.setTextFilterEnabled(true);筛选器不工作..请检查此项: