Android(安卓)SearchView 使用示例
16lz
2021-01-26
布局文件:
<?xml version="1.0" encoding="utf-8"?>
主程序文件
package com.toby.personal.testlistview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.SearchView;import android.text.TextUtils;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements SearchView.OnQueryTextListener { final private static String TAG = "Toby_Test"; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final String[] mString = {"test aaa", "test bbb", "test ccc"}; listView = (ListView) findViewById(R.id.listView); listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mString)); listView.setTextFilterEnabled(true); listView.setVisibility(View.GONE); final SearchView searchView = (SearchView) findViewById(R.id.searchView); searchView.setIconifiedByDefault(false); // 是否缩小为图标 searchView.setOnQueryTextListener(this); // 注册事件监听器 searchView.setSubmitButtonEnabled(true); // 显示搜索按钮 searchView.setQueryHint("Find"); // 默认显示的提示文本 } @Override public boolean onQueryTextSubmit(String query) { Toast.makeText(this, R.string.show, Toast.LENGTH_SHORT).show(); return false; } @Override public boolean onQueryTextChange(String newText) { if (TextUtils.isEmpty(newText)) { listView.setVisibility(View.GONE); listView.clearTextFilter(); // 清除 ListView 的过滤 } else { listView.setFilterText(newText); // 使用用户输入的内容对 ListView 列表项进行过滤 listView.setVisibility(View.VISIBLE); } return true; }}
测试程序的运行效果:
显示效果参考文献:《疯狂Android讲义(第2版)》
更多相关文章
- Android实现手势检测
- android GridView的应用举例
- Android中的人机交互技术
- Qt for Android程序沉浸式启动页面(去除标题栏、去除黑屏、保留后
- 扩大攻击层面:React Native Android应用程序
- 为何Android普通APP可以执行私有数据中的so文件,而system app却不
- [置顶] Android无线开发的几种常用技术(阿里巴巴资深工程师原创
- Android使用Socket(Tcp/Udp)协议进行数据传输(传输大文件)
- Maven系列 7.文档和报告