Listviewitem如何实现模糊搜索

avatar
作者
猴君
阅读量:21

实现模糊搜索功能的方法是在搜索关键字改变时,动态的过滤ListView中的数据,只显示匹配搜索关键字的数据项。

以下是一个简单的示例代码,演示如何在Android中实现ListView的模糊搜索功能:

public class MainActivity extends AppCompatActivity {      private ListView listView;     private EditText searchEditText;     private ArrayAdapter<String> adapter;      private ArrayList<String> dataList;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          listView = findViewById(R.id.listView);         searchEditText = findViewById(R.id.searchEditText);          // 初始化数据         dataList = new ArrayList<>();         dataList.add("Apple");         dataList.add("Banana");         dataList.add("Cherry");         dataList.add("Durian");         dataList.add("Grape");          // 设置ListView的适配器         adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);         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();                 adapter.getFilter().filter(searchText);             }              @Override             public void afterTextChanged(Editable s) {}         });     } } 

在上面的代码中,我们通过添加一个TextWatcher来监听搜索框内容的变化,当搜索框内容改变时,调用adapter.getFilter().filter(searchText)来过滤数据并更新ListView的显示。ListView会根据关键字进行模糊匹配,并只显示匹配项。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!