乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第37页

书籍名:《Android从入门到精通》    作者:明日科技


通过阅读本章,您可以:

★  掌握自动完成文本框的使用方法



★  掌握进度条的用途和使用方法



★  掌握拖动条和星级评分条的使用



★  掌握选项卡的基本应用



★  掌握图像切换器、网格视图和画廊视图的应用



★  掌握如何创建可以作为列表项的适配器



★  掌握如何显示消息提示框和对话框





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所示,双击想要的列表项,即可将选中的内容显示到自动完成文本框中。