您的位置:首页 > 移动开发 > Android开发

Android搜索功能实现

2015-11-19 11:38 288 查看
 @Override

public android.widget.Filter getFilter() {

android.widget.Filter filter = new android.widget.Filter() {

protected void publishResults(CharSequence constraint,

FilterResults results) {

list = (List<CityHot>) results.values;

notifyDataSetChanged();

}

protected FilterResults performFiltering(CharSequence s) {

FilterResults results = new FilterResults();

List<CityHot> queryResultCities = new ArrayList<CityHot>();

if (TextUtils.isEmpty(s)) {

queryResultCities = alllist;

results.values = queryResultCities;

results.count = queryResultCities.size();

return results;

} else {

String str = s.toString();

if (alllist != null) {

for (CityHot contactBean : alllist) {

// 匹配全拼、首字母、中文城市名、区号、邮政编码

if (contactBean

.getCity() != null

&& contactBean.getCity().startsWith(

str) ) {

queryResultCities.add(contactBean);

}

}

}

}

results.values = queryResultCities;

results.count = queryResultCities.size();

return results;

}

};

return filter;

}

马伟 2015-11-18 15:21:56

private void doAfterTextChanged() {

if (enoughToFilter()) {

if (mFilter != null) {

mFilter.filter(querycontacet.getText().toString().trim());

}

} else {

if (mFilter != null) {

mFilter.filter(null);

}

}

}

马伟 2015-11-18 15:22:10

querycontacet.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence s, int start, int before,

int count) {

// TODO Auto-generated method stub

if (TextUtils.isEmpty(s)) {

searchib.setVisibility(View.GONE);

} else {

searchib.setVisibility(View.VISIBLE);

}

doAfterTextChanged();

}

@Override

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

// TODO Auto-generated method stub

}

@Override

public void afterTextChanged(Editable s) {

// TODO Auto-generated method stub

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: