gpt4 book ai didi

android - 使用 Edittext 搜索 ArrayList 时忽略字符

转载 作者:行者123 更新时间:2023-11-30 02:18:10 25 4
gpt4 key购买 nike

我想弄清楚在使用 Edittext 搜索 ArrayList 时如何忽略所有特殊字符和数字。

这是一个例子:

我的 ArrayList 中的一个项目称为“00 - Bar 9”,我想这样当我输入“Ba”时它会显示在我的 ListView 中。使用我拥有的代码,它不会显示,因为我需要先输入“00”。

我不确定我需要做什么才能完成这个?谢谢

search.addTextChangedListener(new TextWatcher() {

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

hasinputtext = true;

temp = new ArrayList<String>();
int textlength = search.getText().length();

temp.clear();
for (int i = 0; i < songs.size(); i++) {
if (textlength <= songs.get(i).length()) {

if (search
.getText()
.toString()
.equalsIgnoreCase(
(String) songs.get(i).subSequence(0,
textlength))) {
temp.add(songs.get(i));
}
}
}

getListView().setAdapter(
new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, temp));

}

@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
}
});

最佳答案

代替

if (search.getText().toString() .equalsIgnoreCase((String) songs.get(i).subSequence(0,textlength))) {
temp.add(songs.get(i));
}

使用

if ((String)songs.get(i).toLowerCase().contains(search.getText().toString().toLowerCase())){
temp.add(songs.get(i));
}

关于android - 使用 Edittext 搜索 ArrayList 时忽略字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28965691/

25 4 0