要給ListView控件添加搜索功能,可以按照以下步驟操作:
以下是一個簡單的示例代碼:
EditText searchEditText = findViewById(R.id.searchEditText);
ListView listView = findViewById(R.id.listView);
List<String> data = new ArrayList<>();
// 初始化ListView的數據項
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
searchEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String searchText = s.toString().toLowerCase(Locale.getDefault());
List<String> filteredData = new ArrayList<>();
for (String item : data) {
if (item.toLowerCase(Locale.getDefault()).contains(searchText)) {
filteredData.add(item);
}
}
adapter.clear();
adapter.addAll(filteredData);
adapter.notifyDataSetChanged();
}
@Override
public void afterTextChanged(Editable s) {
}
});
在這個示例中,我們監聽了EditText的文字變化事件,根據用戶輸入的搜索關鍵詞過濾ListView中的數據,并更新ListView的顯示內容。你可以根據自己的需求進行定制和擴展。