gpt4 book ai didi

android - 如何在我的搜索字符串中搜索任何字符?

转载 作者:搜寻专家 更新时间:2023-11-01 07:52:39 26 4
gpt4 key购买 nike

我目前正在使用字符序列来搜索我的字符串。如何搜索字符串中的任何字符?例如:我有名字“Justin”和“Jacks”,如果我输入“k”,则只有 jack 出现,当我输入“s”时,justin 和 jacks 都会出现,因为它们都有字母 s,如果我只输入 us justin出现等等。我该怎么做?到目前为止,这是我的代码:

inputSearch.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text

MainActivity.this.adapter.getFilter().filter(cs);
}

@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub

}

这是我用于测试项目的整个示例代码: http://www.androidhive.info/2012/09/android-adding-search-functionality-to-listview/

最佳答案

在您的适配器中尝试以下代码以获取列表中的过滤器数据:

        private Filter mFilter;
private List<String> mCompleteList,mList;

@Override
public Filter getFilter() {
if (mFilter == null) {
mFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();

if (constraint == null || constraint.length() == 0) {
results.values = mCompleteList;
results.count = mCompleteList.size();
} else {
List<String> beanList = new ArrayList<String>();

for (String bean : mCompleteList) {
if (bean.toUpperCase().contains(constraint.toString().toUpperCase())) {
beanList.add(bean);
}
}
results.values = beanList;
results.count = beanList.size();
}
return results;
}

@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
mList = (List<String>) results.values;
notifyDataSetChanged();
}
};
}
return mFilter;
}

并且不需要 MainActivity.this.adapter.getFilter().filter(cs);在文本更改中,您可以使用 adapter.getFilter().filter(cs);因为适配器是类的私有(private)变量。

关于android - 如何在我的搜索字符串中搜索任何字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com