《智能家居系统集成与应用(双色)》(郭海礁) 教案 第13课 灯控系统程序设计与实现_第1页
《智能家居系统集成与应用(双色)》(郭海礁) 教案 第13课 灯控系统程序设计与实现_第2页
《智能家居系统集成与应用(双色)》(郭海礁) 教案 第13课 灯控系统程序设计与实现_第3页
《智能家居系统集成与应用(双色)》(郭海礁) 教案 第13课 灯控系统程序设计与实现_第4页
《智能家居系统集成与应用(双色)》(郭海礁) 教案 第13课 灯控系统程序设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE2PAGE2PAGE7PAGE7PAGE7PAGE7

课题第13课灯控系统程序设计与实现课时2课时(90min)教学目标知识目标:掌握下拉列表Spinner的使用方法,事件监听器的实现技能目标:掌握灯控系统Android程序设计与实现态度目标:在学习上要有多种思路,具备发散思维,条条大路通罗马教学重难点教学重点:Spinner定义数据源的三种方式教学难点:Android终端与物联网的通信教学方法问答法、讨论法、讲授法、练习法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:传授新知(28min)课堂讨论(10min)第2节课:问题导入(3min)

传授新知(27min)

课堂实训(10min)

课堂小结(3min)

作业布置(2min)教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】现在我们已经处于互联网时代,移动互联网得到了飞速发展,请学生对比各类应用在PC端实现的,在手机移动端是否也有对应APP【学生】按照要求完成课前任务通过课前任务,让学生了解手机APP给我们日常生活带来了很大的便利考勤(2min)【教师】使用文旌课堂APP进行签到【学生】班干部报请假人员及原因培养学生的组织纪律性,掌握学生的出勤情况问题导入(5min)【教师】让学生思考并回答以下问题:电脑端操作有哪些便利性?手机端操作有哪些便利性?【学生】聆听、思考、回答【教师】总结学生的回答,导入本节课内容:灯控系统Android程序设计与实现通过提问,引入新课,激发学生对手机移动端应用开发的兴趣传授新知(28min)【教师】讲解新知,介绍灯控系统程序设计与实现一、Spinner概述1.定义Spinner是下拉列表框,单击Spinner时会弹出一个下拉列表供用户选择,显示时只能显示列表中的当前项,其继承关系如图6-1所示(详见教材)。根据图6-1的继承关系可知,Spinner是ViewGroup的间接子类,因此它也可以作为容器控件使用。【课堂问答】【教师】随机邀请学生回答以下问题从自己手机APP中查找使用下拉列表的情形,总结哪些情况下会选择使用下拉列表。【学生】聆听、思考、回答【教师】总结学生的回答具有多个、固定的数据或者选项,需要让用户选择时,推荐使用下拉列表。2.使用位置(1)在XML布局文件中,使用<Spinner>标签定义下拉列表框控件。(2)在Java程序代码中,使用Spinner类创建下拉列表框控件。3.常用属性与相关方法Spinner提供了大量常用的XML属性与相关方法,如表6-1所示(详见教材)。【多媒体】展示“Spinner支持的XML属性与相关方法”表格(详见教材),并讲解具体内容4.重要方法setAdapter():设置下拉列表框与数据源的关联。getPrompt():获取提示文字。getSelectedItem():获取下拉列表项的值。setOnItemClickListener():为下拉列表框中的每一个选项设置鼠标单击事件监听器。setOnItemSelectedListener():为下拉列表框中的每一个选项设置被选中事件监听器。5.定义数据的3种方式数据源是下拉列表中需要提供的数据。Spinner定义数据源的方式有以下三种。方式一:直接通过资源文件来配置数据源,涉及的资源文件有arrays.xml和布局文件。步骤1定义数组资源。在values目录下创建一个数组资源文件arrays.xml,在arrays.xml中,通过<string-array>标记定义字符串数组资源,并添加数组元素的值。步骤2指定数据源。为布局文件中的Spinner控件添加android:entries属性,设置数据源为定义的字符串数组。方式二:在Java程序中,通过ArrayAdapter读取资源文件来配置数据源。步骤1定义数组资源。在数组资源文件arrays.xml中,通过<string-array>标记定义字符串数组资源,并添加数组元素的值。步骤2定义数据源。在Java程序代码中,通过ArrayAdapter类的createFromResourcer()方法创建一个ArrayAdapter(数组适配器,即数据源)对象,由它负责列表条目的显示。(createFromResourcer()中有3个参数分别是上下文、定义的数组资源、布局Spinner的风格)。步骤3设置与数据源的关联。在Java程序代码中,将Spinner与数据源进行关联。方式三:在Java程序中,通过ArrayAdapter指定设置的具体数据来配置数据源。步骤1定义数组,保存数据源中的数据内容。在Java程序中,定义数据源中要使用的数组,并添加数组元素的值。步骤2定义数据源。在Java程序代码中,通过ArrayAdapter类的构造方法创建一个ArrayAdapter对象,由它负责列表条目的显示。步骤3设置与数据源的关联。在Java程序代码中,将Spinner与数据源进行关联。【课堂问答】【教师】随机邀请学生回答以下问题对比分析定义数据的3种方式有哪些相同点和不同点?【学生】聆听、思考、回答【教师】总结学生的回答二、使用类自身实现事件监听器1.使用类自身实现事件监听器的步骤步骤1定义成员变量。将要控制的组件定义为Activity的成员变量。步骤2获取组件。在Activity的onCreate()方法中获取需要的组件。步骤3让本类实现监听器接口。在本类的声明部分添加要实现的监听器接口,并且实现接口中没有实现的事件处理器方法。步骤4为事件源注册监听器。在Activity的onCreate()方法中为事件源注册监听器,监听器为本类的当前对象,即this。2.使用类自身实现事件监听器的优势Activity类本身作为事件监听器,就如同生活中,我们自己刚好能够处理某一件事,不需要委托给他人处理,可以直接在Activity类中定义事件处理方法,这种形式非常简捷。3.使用类自身实现事件监听器的缺点(1)可能造成程序结构混乱,Activity的主要职责是完成界面初始化工作,若此时还要包含事件处理方法,可能引起混乱。(2)如果Activity界面类需要实现监听器接口,给人感觉比较怪异。4.常见事件监听器接口及其处理方法常见事件监听器接口及其处理方法如表6-2所示(详见教材)。【多媒体】展示“常见事件监听器接口及其处理方法”表格(详见教材),并讲解具体内容5.View类的常见事件监听器注册方法View类的常见事件监听器注册方法如表6-3所示(详见教材)。【多媒体】展示“View类的常见事件监听器注册方法”表格(详见教材),并讲解具体内容【课堂问答】【教师】随机邀请学生回答以下问题除了使用类自身实现事件监听器,还有哪些方式实现事件监听器?【学生】聆听、思考、回答【教师】总结学生的回答1.外部类作为事件监听器2.匿名内部类作为事件监听器3.内部类作为事件监听器【学生】聆听、观看、思考、理解、记录通过教师讲解、课堂问答和多媒体演示等方式,让学生掌握Spinner的定义、使用位置、属性、方法、定义数据方式等内容;学会如何使用类自身实现事件监听器,熟悉其优缺点;了解View类的常见事件监听器注册方法课堂讨论(10min)【教师】对学生进行分组,4~6人一组,每组选出一名组长,然后组织学生以小组为单位讨论以下问题对比Spinner定义数据的3种方式,分析每种方式的优点和缺点。【学生】聆听、思考、小组讨论,由小组代表上台发表讨论结果【教师】总结学生的回答,并评价各组的表现通过课堂讨论,使学生真正掌握Spinner定义数据的3种方式,并能根据实际使用情况,选择合适的方式第二节课问题导入(3min)【教师】让学生思考并回答以下问题如何设计一个漂亮并且方便用户操作的APP界面?【学生】聆听、思考、回答通过问题,让学生明白一个好的APP不仅功能上要完善,还需要一个好的交互界面传授新知(27min)【教师】引入任务实施内容,讲解灯控系统程序的设计与实现创建Android工程创建Android工程的操作步骤如下:【多媒体】演示创建Android工程的操作步骤步骤1双击打开Android开发工具Eclipse,选择“File”/“New”/“AndroidApplicationProject”选项,创建一个Android工程,如图6-2所示(详见教材)。步骤2打开“AndroidApplicationProject”对话框,输入应用名称、项目名称和包名称,然后选择最低支持版本、目标版本、编译版本和主题,最后单击“Next”按钮,如图6-3所示(详见教材)。步骤3在打开的界面中进行项目配置,本例保持默认设置,直接单击“Next”按钮,如图6-4所示(详见教材)。步骤4在打开的界面中配置项目图标,然后单击“Next”按钮,如图6-5所示(详见教材)。步骤5在打开的界面中取消“CreateActivity”复选框,取消创建Activity,然后单击“Finish”按钮,如图6-6所示(详见教材)。步骤6项目创建完成,其结构目录如图6-7所示(详见教材)。步骤7从本书配套素材“项目六源代码”/“任务1灯控系统程序设计与实现”/“libs”中复制HttpApi.jar到新创建项目的相同目录下,如图6-8所示(详见教材)。步骤8右击src目录,在弹出的快捷菜单中选择“New”/“Class”选项,新建一个类,如图6-9所示(详见教材)。步骤9打开“NewJavaClass”对话框,输入Java类文件包名称、类名及继承Activity父类,然后单击“Finish”按钮,完成类的创建,如图6-10所示(详见教材)。步骤10在AndroidManifest.xml清单文件中注册Activity。把代码(详见教材)添加到AndroidManifest.xml文件的相应位置。【课堂问答】【教师】随机邀请学生回答以下问题androidmanifest.xml文件的作用是什么?【学生】聆听、思考、回答【教师】总结学生的回答1、它是每个android程序中必须的文件,位于整个项目的根目录。2、配置程序运行所必要的组件,权限,以及一些相关信息。3、它是整个应用的入口,所以有助于更加深入的理解Android。步骤11添加网络访问权限。把代码(详见教材)添加到AndroidManifest.xml清单文件的相应位置。步骤12在“res”/“layout”目录创建布局文件。右击layout目录,在弹出的快捷菜单中选择“New”/“Other”选项,如图6-11所示(详见教材)。步骤14打开“NewAndroidLayoutXMLFile”对话框,在“File”编辑框中输入布局文件名称,单击“Finish”按钮完成布局文件的创建,如图6-13所示(详见教材)。步骤15在文件中加载布局。在重写的onCreate方法中的指定位置添加“setContentView(R.layout.activity_control);”布局文件实现控制界面布局需要用户在控制界面选择组别,因此需要用到Spinner控件。最外层使用垂直的线性布局android:orientation="vertical"。垂直的线性布局中有两组内容:图片和控制按钮;组别说明的TextView和组别选择器的Spinner;均为水平摆放,因此它们均采用水平布局。在“res”/“layout”/“activity_control.xml”文件中添加如下代码。【多媒体】演示布局文件实现步骤步骤1添加控制界面中选择灯布局的代码。<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginTop="2dip"

android:gravity="center"

android:orientation="horizontal">

……(详见教材)步骤2添加开关按钮布局代码。<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginTop="12dip"

android:gravity="center"

android:orientation="horizontal"

android:paddingLeft="25dip"

android:paddingRight="25dip">……(详见教材)步骤3把以上代码添加到布局文件后按“Ctrl+S”组合键保存,控制界面效果如图6-14所示(详见教材)。功能实现通过添加控制代码实现设置Spinner适配和监听事件,监听选择哪一组灯泡进行操作。设置按钮监听事件,监听用户的单击事件,设置请求参数,其中灯光控制实验用到的参数有四个。请参照平台提供的接口文档,将数据以POST请求方式提交平台进行验证,等待平台验证结果进行相应的操作,http请求需要用到的请求接口和请求参数均由智能家居系统平台提供,在“src”/“ControlActivity.java”文件中实现控制功能。【多媒体】演示创建功能实现的操作步骤初始化参数/**

*上下文对象

*/

privateContextcontext=null;

/**

*选择控制灯泡

*/

……(详见教材)2.Spinner实现实例化和监听spinner=(Spinner)findViewById(R.id.spinner_light);

//初始化组别选择器

spinner.setAdapter(newArrayAdapter<String>(context,

android.R.layout.simple_list_item_1,lightGroup));

spinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){

……(详见教材)【课堂问答】【教师】随机邀请学生回答以下问题Spinner的定义数据的方式属于上节课中所讲的哪种方式?【学生】聆听、思考、回答【教师】总结学生的回答方式三:在Java程序中,通过ArrayAdapter指定设置的具体数据来配置数据源。3.实例化按钮对象并设置监听//实例化开灯关灯按钮并设置监听

findViewById(R.id.but_open).setOnClickListener(this);

findViewById(R.id.but_close).setOnClickListener(this);4.按钮单击事件监听@Override

publicvoidonClick(Viewv){

switch(v.getId()){

caseR.id.but_open:

control(1);

img_none.setVisibility(View.VISIBLE);

……(详见教材)5.发起http请求publicvoidcontrol(intonOrOff){

//开启异步线程请求数据

AsyncHttpClientclient=newAsyncHttpClient();

client.setTimeout(8000);

RequestParamsparams=newRequestParams();

params.put("equno","32258778P6B508");//参数设置--设备编号--具体查看文档《具体参数设置》

……(详见教材)6.对话框内容显示privatevoidshowSetIpDialog(Stringtitle,Stringmess){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context);

builder.setTitle(title);

builder.setMessage(mess);

finalEditTexteditText=newEditText(context);

editText.setText(DataSave.getString(context,"serverIp"));

……(详见教材)最后按“CtrL+S”组合键保存即可,完整代码请查看本书配套源代码。7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论