我正在和json一起工作。我已成功解析json并可以在listview(图像和文本)中显示结果。现在我想编写一个搜索函数来搜索我的json输出。我写了一个函数,它搜索名称,但json中的所有名称都以UpperCase开头,这就是问题所在。我还在没有UpperCase的情况下测试了我的代码,那时它正在工作。 这是我的代码
public void SearchFunction(String searchWord) {
itemList.clear();
adapter.notifyDataSetChanged();
if (searchWord.equals(" ")) {
for (int i = 0; i < contents.size(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_name, contents.get(i).name);
map.put(KEY_id, contents.get(i).id);
itemList.add(map);
}
} else {
for (int i = 0; i < contents.size(); i++) {
if (contents.get(i).name.indexOf(searchWord) >= 0) {
HashMap<String, String> map = new HashMap<String, String>();
map.put(KEY_name, contents.get(i).name);
map.put(KEY_id, contents.get(i).id);
itemList.add(map);
}
}
}
adapter.notifyDataSetChanged();
}
listResult.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
String searchWord = listResult.getText().toString();
list.setVisibility(View.VISIBLE);
SearchFunction(searchWord);
}
});
我想检查解决方案是否在UpperCase中。无论有没有UpperCase,我希望我的代码能够完美地工作。 请帮我解决。
答案 0 :(得分:1)
您可以使用.toUpperCase()或.toLowerCase()
我的意思是
contents.get(i).name.toLowerCase().indexOf(searchWord.toLowerCase())
答案 1 :(得分:0)
您可能会对article "Adding Custom Suggestions" on Android developers感兴趣。
重写查询的方法就是我想要的。