Listviewitem如何实现模糊搜索

   2024-10-07 8280
核心提示:实现模糊搜索功能的方法是在搜索关键字改变时,动态的过滤ListView中的数据,只显示匹配搜索关键字的数据项。以下是一个简单的示

实现模糊搜索功能的方法是在搜索关键字改变时,动态的过滤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会根据关键字进行模糊匹配,并只显示匹配项。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号