使用SearchView实现自定义ArrayAdapter的搜索功能,可以按照以下步骤进行:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
private SearchView searchView;
private ListView listView;
private ArrayAdapter<String> adapter;
private ArrayList<String> dataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchView = findViewById(R.id.searchView);
listView = findViewById(R.id.listView);
// 初始化数据
dataList = new ArrayList<>();
dataList.add("Apple");
dataList.add("Banana");
dataList.add("Orange");
dataList.add("Grape");
dataList.add("Watermelon");
// 初始化适配器
adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList);
listView.setAdapter(adapter);
// 设置SearchView的监听器
searchView.setOnQueryTextListener(this);
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// 根据输入的文本过滤数据
adapter.getFilter().filter(newText);
return true;
}
}
这样,当用户在SearchView中输入文本时,ListView会根据输入的文本过滤数据,并显示匹配的结果。
注意:以上代码只是实现了搜索功能的基本逻辑,实际应用中可能需要根据具体需求进行适当的修改和扩展。
推荐的腾讯云相关产品:腾讯云移动推送服务(https://cloud.tencent.com/product/tpns)可以用于实现消息推送功能,适用于移动应用开发中的用户通知、消息推送等场景。
云+社区沙龙online第5期[架构演进]
实战低代码公开课直播专栏
北极星训练营
企业创新在线学堂
北极星训练营
Elastic 中国开发者大会
云+社区沙龙online [云原生技术实践]
腾讯云存储知识小课堂
领取专属 10元无门槛券
手把手带您无忧上云