getListView().setTextFilterEnabled(true),函数setTextFilterEnabled,属性为true表示listview获得当前焦点的时候,与相应用户输入的匹配符进行比对,筛选出匹配的ListView的列表中的项。
图(1)程序运行打开的首界面
图(2)从键盘输入数字1,从图(1)跳转到图(2)这个界面
图(3)从键盘输入“地图”两个字,从图(1)跳转到图(3)这个界面
图(4)从键盘输入“打”,从图(1)跳转到图(4)这个界面
package com.example.settextfilterenabled_test; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); // ListView的列表项的数组 String[] menus = { "1", "a", "打电话","浏览器","地图"}; //将数组内容设置为ListView的列表项展示 setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menus)); //还有个函数叫setFilterText,用来过滤列表中的数据。 //这个属性为true表示listview获得当前焦点的时候,相应用户键盘输入的匹配符进行比对,筛选出匹配的 getListView().setTextFilterEnabled(true); //这个属性为false表示listview不能获得当前焦点,与没有这项设置时的效果一样 //getListView().setTextFilterEnabled(false); } }
<RelativeLayout 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"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
</RelativeLayout>
Ps:
若继承ListActivity,用setContentView(R.layout.activity_main)加载布局文件,程序报错,即不能再以这种方式加载布局文件。