Android 将ListView筛选器更改为仅匹配字符串开头
我有一个活动,列表视图在顶部显示国家列表和搜索框 我只需要根据输入的文本过滤Listview 使用过滤器,效果很好。除了将输入的字符串与文本上的任何匹配相匹配,要么开始,要么在中间,而我只需要匹配字符串的开始。 例如,如果用户类型为“f”,则显示: 布基纳法索 福克兰群岛 法罗群岛 斐济 芬兰 法国 现在,“布基纳法索”并不是以F开头,它只是因为包含F而显示 如何更改筛选器以仅查找字符串的开头Android 将ListView筛选器更改为仅匹配字符串开头,android,Android,我有一个活动,列表视图在顶部显示国家列表和搜索框 我只需要根据输入的文本过滤Listview 使用过滤器,效果很好。除了将输入的字符串与文本上的任何匹配相匹配,要么开始,要么在中间,而我只需要匹配字符串的开始。 例如,如果用户类型为“f”,则显示: 布基纳法索 福克兰群岛 法罗群岛 斐济 芬兰 法国 现在,“布基纳法索”并不是以F开头,它只是因为包含F而显示 如何更改筛选器以仅查找字符串的开头 inputSearch = (EditText) findViewById(R.id.inputSea
inputSearch = (EditText) findViewById(R.id.inputSearch);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
CountryListViewActivity.this.adapter2.getFilter().filter(cs);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
在listadapters筛选器中,使用以下内容实现筛选器方法的匹配部分
if (placeName.toLowerCase().startsWith(filterValue.toLowerCase()) {
// add it to the result list
}
您当前使用的算法是contains。下面的链接是否有帮助?它取决于什么是
适配器2
…阵列适配器2@CountryListViewActivity中的user836026。this.adapter2.getFilter().filter(cs),filter(cs)包含什么?@dhams cs是用户键入的搜索字符串。