Android开发讲义主讲人:主讲人:杨锎课程体系Android开发环境的搭建Android初级界面编程事件处理深入ActivityIntent与IntentFilterAndroid高级界面编程Android应用的资源Android开发讲义主讲人:杨锎课程体系图形与图象处理Android数据存储技术与数据共享Service与BroadcastReceiverAndroid网络应用多媒体应用开发OpenGL与3D应用开发传感器应用开发Android开发讲义主讲人:杨锎课程体系GPS应用开发GoogleMap服务项目实战Android开发讲义主讲人:杨锎本章要点高级界面组件对话框消息提示菜单Android开发讲义主讲人:杨锎第六章Android高级界面编程一.高级界面组件1.自动完成文本框的功能和用法自动完成文本框(AutoCompleteTextView)从EditText派生而出,实际上它是一个文本编辑框,但它比普通编辑框多了一个功能:当用户输入一定字符之后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填充该文本框使用AutoCompleteTextView很简单,只要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本。Android开发讲义自动完成文本框(页面设计)示例一LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:gravity=center_horizontalAutoCompleteTextViewandroid:id=@+id/accountandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:dropDownHeight=wrap_contentandroid:hint=请输入账号android:clickable=trueandroid:completionThreshold=1//LinearLayoutAndroid开发讲义自动完成文本框(逻辑设计)示例一publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);AutoCompleteTextViewautoEdit=(AutoCompleteTextView)findViewById(R.id.account);ArrayAdapterStringadapter=newArrayAdapterString(this,android.R.layout.simple_dropdown_item_1line,users);autoEdit.setAdapter(adapter);}Android开发讲义创建适配器主讲人:杨锎第六章Android高级界面编程一.高级界面组件2.Spinner的功能和用法(暂略)该组件实际是一个列表选择框,不过Android的列表选择框并不是需要显示下拉列表的,而是相当于弹出一个菜单供用户选择。该组件时ViewGroup的间接子类,因此它也可作为容器使用。Android开发讲义主讲人:杨锎第六章Android高级界面编程一.高级界面组件3.日期、时间选择器(DatePicker和TimePicker)的功能和用法DatePicker供用户选择日期,TimePicker供用户选择时间,这两个控件在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期、时间;DatePicker–OnDateChangedListener:获取用户选择的日期。TimePicker–OnTimeChangedListener:获取用户选择的时间。Android开发讲义日期、时间选择器(页面设计)示例二LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:gravity=center_horizontalTextViewandroid:id=@+id/txtandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:text=日历控件/DatePickerandroid:id=@+id/dateandroid:layout_width=wrap_contentandroid:layout_height=wrap_content/TimePickerandroid:id=@+id/timeandroid:layout_width=wrap_contentandroid:layout_height=wrap_content/EditTextandroid:id=@+id/showandroid:layout_width=fill_parentandroid:layout_height=wrap_content//LinearLayoutAndroid开发讲义日期、时间选择器(逻辑设计)示例二publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);DatePickerdatePicker=(DatePicker)findViewById(R.id.date);TimePickertimePicker=(TimePicker)findViewById(R.id.time);Calendarcalendar=Calendar.getInstance();year=calendar.get(Calendar.YEAR);month=calendar.get(Calendar.MONTH);date=calendar.get(Calendar.DATE);hour=calendar.get(Calendar.HOUR);minute=calendar.get(Calendar.MINUTE);datePicker.init(year,month,date,newOnDateChangedListener(){publicvoidonDateChanged(DatePickerview,intyear,intmonth,intdate){DemoActivity.this.year=year;DemoActivity.this.month=month;DemoActivity.this.date=date;setDate(year,month,date,hour,minute);}});timePicker.setOnTimeChangedListener(newOnTimeChangedListener(){publicvoidonTimeChanged(TimePickerview,inthour,intminute){DemoActivity.this.hour=hour;DemoActivity.this.minute=minute;setDate(year,month,date,hour,minute);}});}privatevoidsetDate(intyear,intmonth,intdate,inthour,intminute){EditTexttxt=(EditText)findViewById(R.id.show);Stringresult=您选择的日期为:+year+年+month+1+月+date+日+hour+时+minute+分;txt.setText(result);}Android开发讲义主讲人:杨锎第六章Android高级界面编程一.高级界面组件4.进度条的功能和用法进度条通常用于向用户显示某个耗时操作的百分比。进度条可以动态地显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应从而更好地提高用户界面的友好性。@android:style/Widget.ProgressBar.Horizontal:水平进度条@android:style/Widget.ProgressBar.Inverse:不断跳跃旋转画面的进度条@android:style/Widget.ProgressBar.Large:大进度条@android:style/Widget.ProgressBar.Large.Inverse:不断跳跃旋转画面的大进度条@android:style/Widget.ProgressBar.Small:小进度条@android:style/Widget.ProgressBar.Small.Inverse:不断跳跃旋转画面的小进度条Android开发讲义进度条(页面设计)示例三LinearLayoutxmlns:android=:orientation=verticalandroid:layout_width=fill_parentandroid:layout_height=fill_parentandroid:gravity=center_horizontalTextViewandroid:id=@+id/txtandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:text=任务完成的进度/ProgressBarandroid:id=@+id/barandroid:layout_width=fill_parentandroid:layout_height=wrap_contentandroid:max=100style=@android:style/Widget.ProgressBar.Horizontal//LinearLayoutAndroid开发讲义进度条(逻辑设计)示例三@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalProgressBarbar=(ProgressBar)findViewById(R.id.bar);finalHandlerhandle=newHandler(){publicvoidhandleMessage(Messagemsg){if(msg.what==0x111){bar.setProgress(status);}}};}Android开发讲义进度条(逻辑设计)示例三newThread(){@Overridepublicvoidrun(){while(stutas100){stutas=doWork();Messagemsg=newMessage();msg.what