搜索内容自动匹配

搜索自动匹配功能,如下图。

主要用到两个控件的运用。

1.AutoCompleteTextView      只匹配一次。

2.MultiAutoCompleteTextView      多次匹配,每次匹配完会以一个符号断开然后根据接下来输入的内容继续匹配。以及他们的一个属性:

android:completionThreshold="3"   //  当输入的字符数量为3的时候开始匹配。

第一种:

首先我们需要实例化对象,定义一个数组用来存放被搜索的内容,然后添加适配器。运用适配器来将输入的内容与数组中的内容匹配。

实例化控件,定义数组。

autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);

private String[] ass = {"beijing1", "beijing2", "beijing3", "beijing4", "beijing5", "beijing6","shanghai1","shanghai2","shanghai3"};
适配器

multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ass);
然后给控件绑定适配器

autoCompleteTextView.setAdapter(adapter);

以上就完成了第一种。

第二种:

实例化对象,添加数组

multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);

private String[] ass = {"beijing1", "beijing2", "beijing3", "beijing4", "beijing5", "beijing6","shanghai1","shanghai2","shanghai3"};

添加适配器,然后绑定

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ass);

multiAutoCompleteTextView.setAdapter(adapter);

然后设置断开的符号,这里用逗号(教程里是用的这个)

multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

两种匹配方法都可以同时用一个存储数据的数组,也可以用同一个适配器适配。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现搜索框的自动匹配功能,你可以使用JavaScript来监听用户在搜索框中的输入,并根据输入内容与相关内容进行匹配。以下是一个简单的示例代码: HTML部分: ```html <!DOCTYPE html> <html> <head> <title>自动匹配搜索框示例</title> </head> <body> <input type="text" id="searchInput" oninput="handleInput()"> <ul id="searchResults"></ul> <script> var searchInput = document.getElementById("searchInput"); var searchResults = document.getElementById("searchResults"); function handleInput() { var searchTerm = searchInput.value.toLowerCase(); var matchedResults = search(searchTerm); displayResults(matchedResults); } function search(term) { // 在这里执行搜索逻辑,返回与搜索匹配的结果数组 // 这里只是一个示例,你可以根据实际情况进行修改 var data = ["苹果", "香蕉", "橙子", "芒果", "西瓜", "葡萄"]; var matchedResults = []; for (var i = 0; i < data.length; i++) { if (data[i].toLowerCase().indexOf(term) !== -1) { matchedResults.push(data[i]); } } return matchedResults; } function displayResults(results) { searchResults.innerHTML = ""; for (var i = 0; i < results.length; i++) { var li = document.createElement("li"); li.textContent = results[i]; searchResults.appendChild(li); } } </script> </body> </html> ``` 在上面的示例中,我们首先获取了搜索框的输入元素和搜索结果的列表元素。然后,我们使用 `oninput` 事件监听器来捕获用户在搜索框中的输入。 在 `handleInput()` 函数中,我们获取了搜索框的输入值,并将其转换为小写。然后,我们调用 `search()` 函数来执行搜索逻辑,返回与搜索匹配的结果数组。在这个示例中,我们只是简单地将输入值与一个预定义的数据数组进行匹配。 最后,我们调用 `displayResults()` 函数来显示匹配的结果。该函数会清空搜索结果列表,并根据匹配到的结果动态创建列表项。 你可以根据需要修改搜索逻辑和数据源,并对结果进行自定义的展示。希望对你有所帮助!如有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值