主代码:
public class MainActivity extends Activity implements
SearchView.OnQueryTextListener {
private SearchView search;
private ListView list;
private String[] arr = { "aaaaa", "bbbbbb", "ccccccc" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
search = (SearchView) findViewById(R.id.search);
list = (ListView) findViewById(R.id.list);
list.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr));
list.setTextFilterEnabled(true);
// 设置SearchView是否自动缩小图标
search.setIconifiedByDefault(false);
// 设置SearchView的监听事件
search.setOnQueryTextListener(this);
// 设置SearchView显示搜索框
search.setSubmitButtonEnabled(true);
// 设置SearchView搜索框内的默认显示
search.setQueryHint("搜索");
}
@Override
public boolean onQueryTextSubmit(String query) {
// TODO Auto-generated method stub
Toast.makeText(this, "您选择的是" + query, Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// 用户输入字符时激活该方法
if (TextUtils.isEmpty(newText)) {
// 清除ListView的过滤
list.clearTextFilter();
} else {
// 是用用户输入的内容对ListView的列表项进行过滤
list.setFilterText(newText);
}
return true;
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<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/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</SearchView>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="10px"
android:layout_weight="1"
></ListView>
</LinearLayout>
效果图: