第37页
通过阅读本章,您可以:
★ 掌握自动完成文本框的使用方法
★ 掌握进度条的用途和使用方法
★ 掌握拖动条和星级评分条的使用
★ 掌握选项卡的基本应用
★ 掌握图像切换器、网格视图和画廊视图的应用
★ 掌握如何创建可以作为列表项的适配器
★ 掌握如何显示消息提示框和对话框
4.1 高级组件
教学录像:光盘\TM\lx\4\高级组件.exe
通过前面章节的学习,我们已经掌握了Android提供的基本界面组件,本节将介绍Android提供的常用高级组件。使用这些组件可以大大降低开发者的开发难度,为快速程序开发提供方便。
4.1.1 自动完成文本框
自动完成文本框(AutoCompleteTextView),用于实现允许用户输入一定字符后,显示一个下拉菜单,供用户从中选择,当用户选择某个选项后,按用户选择自动填写该文本框。
在屏幕中添加自动完成文本框,可以在XML布局文件中通过标记添加,基本语法格式如下:
属性列表
>
AutoCompleteTextView组件继承自EditText,所以它支持EditText组件提供的属性,同时,该组件还支持如表4.1所示的XML属性。
表4.1 AutoCompleteTextView支持的XML属性
XML属性 描 述
android:completionHint 用于为弹出的下拉菜单指定提示标题
android:completionThreshold 用于指定用户至少输入几个字符才会显示提示
android:dropDownHeight 用于指定下拉菜单的高度
android:dropDownHorizontalOffset 用于指定下拉菜单与文本之间的水平偏移。下拉菜单默认与文本框左对齐
android:dropDownVerticalOffset 用于指定下拉菜单与文本之间的垂直偏移。下拉菜单默认紧跟文本框
android:dropDownWidth 用于指定下拉菜单的宽度
android:popupBackground 用于为下拉菜单设置背景
下面给出一个关于自动完成文本框的实例。
例4.1 在Eclipse中创建Android项目,名称为4.1,实现带自动提示功能的搜索框。(实例位置:光盘\TM\sl\4\4.1)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的垂直线性布局管理器修改为水平线性布局管理器,并在该布局管理器中添加一个自动完成文本框和一个按钮,修改后的代码如下:
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_height="wrap_content"
android:text=""
android:id="@+id/autoCompleteTextView1"
android:completionThreshold="2"
android:completionHint="输入搜索内容"
android:layout_weight="7"
android:layout_width="wrap_content">
android:text="搜索"
android:id="@+id/button1"
android:layout_weight="1"
android:layout_marginLeft="10px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
说明: 在上面的代码中,通过android:completionHint属性设置下拉菜单中显示的提示标题;通过android:completionThreshold属性设置用户至少输入2个字符才会显示提示。
(2)在主活动MainActivity中,定义一个字符串数组常量,用于保存要在下拉菜单中显示的列表项,具体代码如下:
private static final String[] COUNTRIES = new String[] {
"明日科技", "明日科技有限公司", "吉林省明日科技有限公司", "明日编程词典", "明日"};
(3)在主活动的onCreate()方法中,首先获取布局文件中添加的自动完成文本框,然后创建一个保存下拉菜单中要显示的列表项的ArrayAdapter适配器,最后将该适配器与自动完成文本框相关联,关键代码如下:
//获取自动完成文本框
AutoCompleteTextView textView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
ArrayAdapter adapter=new ArrayAdapter(this,
android.R.layout.simple_dropdown_item_1line,COUNTRIES); //创建一个ArrayAdapter适配器
textView.setAdapter(adapter); //为自动完成文本框设置适配器
(4)获取“搜索”按钮,并为其添加单击事件监听器,在其onClick事件中通过消息提示框显示自动完成文本框中输入的内容,具体代码如下:
Button button=(Button)findViewById(R.id.button1); //获取“搜索”按钮
//为“搜索”按钮添加单击事件监听器
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, textView.getText() .toString(), Toast.LENGTH_SHORT).show();
}
});
运行本实例,在屏幕上显示由自动完成文本框和按钮组成的搜索框,输入文字“明日”后,在下方将显示符合条件的提示信息下拉菜单,如图4.1所示,双击想要的列表项,即可将选中的内容显示到自动完成文本框中。