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)加载布局文件,程序报错,即不能再以这种方式加载布局文件。