android studio实现搜索功能的代码
时间: 2023-06-30 08:04:47 浏览: 114
以下是一个简单的 Android Studio 实现搜索功能的代码示例:
在你的布局文件中添加一个搜索框(SearchView)和一个用于显示搜索结果的列表(RecyclerView):
```
<androidx.appcompat.widget.SearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
```
在你的 Activity 或 Fragment 中获取 SearchView 和 RecyclerView 的实例,并设置搜索监听器和列表适配器:
```
public class MyActivity extends AppCompatActivity {
private SearchView searchView;
private RecyclerView recyclerView;
private MyAdapter adapter;
private List<String> dataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 获取 SearchView 和 RecyclerView 实例
searchView = findViewById(R.id.search_view);
recyclerView = findViewById(R.id.recycler_view);
// 初始化数据列表
dataList = initDataList();
// 设置 RecyclerView 的布局管理器和适配器
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new MyAdapter(dataList);
recyclerView.setAdapter(adapter);
// 设置 SearchView 的搜索监听器
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
// 当用户提交搜索时,执行搜索操作
search(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
// 当用户输入搜索关键字时,实时更新搜索结果
search(newText);
return true;
}
});
}
private List<String> initDataList() {
// TODO: 初始化数据列表
return new ArrayList<>();
}
private void search(String keyword) {
// TODO: 根据关键字搜索数据并更新列表
List<String> result = new ArrayList<>();
for (String item : dataList) {
if (item.contains(keyword)) {
result.add(item);
}
}
adapter.setDataList(result);
adapter.notifyDataSetChanged();
}
}
```
在上面的代码中,initDataList() 方法用于初始化数据列表,search() 方法用于根据关键字搜索数据并更新列表,MyAdapter 是一个继承自 RecyclerView.Adapter 的适配器类,setDataList() 方法用于设置数据列表,notifyDataSetChanged() 方法用于通知适配器数据已经发生变化需要更新列表显示。
阅读全文