实现的xml文件 今天我们引入SearchView控件这个是实现搜索的一个控件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical"
>
<SearchView
android:id="@+id/sv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></SearchView>
<ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></ListView>
</LinearLayout>
//主类中我们实现搜索的过滤 对下面的listview中的内容实现根据搜索框中输入的内容进行过滤
import android.text.TextUtils;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
import android.widget.SearchView.OnQueryTextListener;
public class MainActivity extends Activity implements
OnQueryTextListener {
// 定义控件
private ListView lv;
private SearchView sv;
private String[] mStrings = { "苹果", "小苹果", "青苹果", "黄苹果" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 绑定控件
lv = (ListView) findViewById(R.id.lv);
// 设置数据
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings));
// 这个方法的作用是用来过滤选项的.
// 例如在软键盘上打出一个a,则会过滤掉除了a开头的所有选项.
lv.setTextFilterEnabled(true);
sv = (SearchView) findViewById(R.id.sv);
// 设置该SearchView默认是否自动缩小为图标
sv.setIconifiedByDefault(false);
// 为该搜索组件设置监听事件
sv.setOnQueryTextListener(this);// 查询的监听
// 设置该SearchView显示搜索按钮
sv.setSubmitButtonEnabled(true);// 同意的按钮
// 设置该SearchView内默认显示的提示文本
sv.setQueryHint("查找");// 查询默认的额字
}
@Override
public boolean onQueryTextSubmit(String query) {
// 实际应用中应该在该方法内执行实际查询
// 此处仅使用Toast显示用户输入的查询内容
Toast.makeText(this, "您的选择是:" + query, Toast.LENGTH_SHORT).show();
return false;
}
@Override
public boolean onQueryTextChange(String newText) {//这个是传入一个新的文字
// TODO Auto-generated method stub
if (TextUtils.isEmpty(newText)) {//如果这个文字等于空
//清除listview的过滤
lv.clearTextFilter();
}else {
lv.setFilterText(newText);
}
return true;
}
}
下面来看一下我们上面的代码实现的效果:
上面的代码只是一个小小的例子 我们还可以在这个上面的额基础上添加一些代码 这个就相当于我们的启蒙老师。看看你的学习能力有多强。