2、走一步-再走一步-课件(1)
学习目标:(第一课时)1、理解、积累“啜泣、纳罕、迂回、训诫、瘦骨嶙峋、小心翼翼”等词语。2、理解标题的含义。3、在复述故事的基础上,培养学生的写作能力。4、联系自己的生活实际,感悟文中蕴含的人生哲理。
一、创设情境、点燃激情1、导入新课讲小故事(略)2、板书:题目、作者
结果经过时间地点人物七月里一个闷热的日子费城“我”,5个男孩,父亲起因我和几个小伙伴一块爬悬崖,中途他们离我而去。我因害怕上不能上,下不能下的事情。天气闷热玩弹子游戏玩厌了找新花样来玩走一步,再走一步脱险找出文中的六要素
2.复述故事情节要求:(1)交代清楚故事发生的时间、地点、人物;(2)把握文章的故事情节(起因、经过、结果);(3)故事分两部分:“冒险”和“脱险”,找一位同学复述“冒险”,一位同学复述“脱险”。
紧紧抓住六要素,写出自己经历过的一件有意义的小事。
3、文章结构(一)、“我”跟小伙伴去爬悬崖。(1-----6段)(二)“我”爬到半途陷入困境。(7----15段)(三)“我”在父亲的指点下爬下悬崖。(16---22段)(四)童年经历留给“我”的人生经验。(23段)
4.小组合作研讨(1)、从课文内容看,题目“走一步,再走一步”是什么意思?(2)、一个巨大的困难分成“一步一步”是什么意思?(3)为什么不要想着距离有多远?
1、三写作拓展生活中你遇到过什么样的困难?都是怎样克服的?写一则200字左右的短文,和大家交流分享。
它告诉我们,在人生道路上,无论面临怎样的困难和危险,只要把它分解开来,分解成一小步一小步,一步一步战胜小困难,最后就能战胜最大的困难。当然,关键在于走好每一步,要一步一步坚持不懈地走下去。
四、课堂小结一个人在人生的旅途上,不可能都一帆风顺,遇到困难,感受挫折,都是很正常的。只要我们不要失去自信,牢记“不要想着距离有多远,你只要想着你是在走一小步一小步,你能办得到的”,那什么样的艰难险阻都将被你踩在脚下。这节课我们在与作者心灵的对话中,结交了这位朋友,拾取了智慧。我们只有把这份智慧化为实际行动,才算真正汲取了这份营养。
1.请学生发挥想象,为故事设计一个新的结局。挖掘思维潜力,张扬思维个性,续写故事。五、作业布置:例如:杰利找到的是“我”的母亲……杰利没有找到“我”的任何亲人……杰利在途中劝说伙伴们一起回来帮助“我”……
智能终端软件开发浙江大学计算机学院/软件学院2010.06.2010.06.16浙江大学计算机学院
5、数据存取智能终端开发2010.06.17浙江大学计算机学院
数据存取Android有四种方式:SharePreference轻量级键-值方式存储,以XML文件方式保存。文件采用java.io.*库所提供有I/O接口,读写文件。SQLit数据库SQLite是轻量级嵌入式内置数据库。ContentProviderContentProvider可为数据封装,为多个应用共享。2010.06.18浙江大学计算机学院
1、SharedPreferences创建以键值方式加入数据以StringKey为索引来取出数据清除SharedPreferencessettings=this.getSharedPreferences("Demo",MODE_PRIVATE);SharedPreferences.Editoreditor=settings.edit();editor.putString("name",“value”);editor.commit();Stringstr=settings.getString("name","");editor.clear().commit();XML文件名2010.06.19浙江大学计算机学院
SharedPreferences存入XML后的内容目录:/data/data/<包>/shared_prefs/***.xmlXML文件名2010.06.20浙江大学计算机学院
IntentAndroid中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。与简单函数/方法调用,或者通过库调用接口的方式不太一样。在Intent的使用中你看不到直接的函数调用,相对函数调用来说,Intent是更为抽象的概念,利用Intent所实现的软件复用的粒度是Activity/Service,比函数复用更高一些,另外耦合也更为松散。2010.06.21浙江大学计算机学院
2、文件存取文件用来存储大数量的数据采用java.io.*库所提供有I/O接口,读写文件。只有本地文件可以被访问优点:可以存储大容量的数据缺点:文件更新或是格式改变可能会导致巨大的编程工作2010.06.22浙江大学计算机学院
文件操作(读)读文件Context.openFileInput(Stringname)打开一个与应用程序联系的私有文件输入流当文件不存在时抛出FileNotFoundException异常FileInputStreamin=this.openFileInput(“rt.txt");//打开文件“rt.txt"……in.close();//关闭输入流2010.06.23浙江大学计算机学院
文件操作(写)写文件Context.openFileOutput(Stringname,intmode)开启一个与应用程序联系的私有文件输出流当文件不存在时该文件将被创建文件输出流可以在添加模式中打开,这意味新的数据将被添加到文件的末尾FileOutputStreamout=this.openFileOutput(“wt.txt",MODE_APPEND);//打开文件“wt.txt"进行写操作、使用MODE_APPEND在添加模式中打开文件……out.close();//关闭输出流2010.06.24浙江大学计算机学院
读取静态文件要打开打包在应用程序中的静态文件,使用Resources.openRawResource(R.raw.mydatafile)该文件必须放在文件夹res/raw/中InputStreamin=this.getResources().openRawResource(R.raw.my);…//获得Context资源in.close();//关闭输入流2010.06.25浙江大学计算机学院
把文件存放在SDCard访问SDCard,需要申请访问SDCard的权限。在AndroidManifest.xml中加入访问SDCard的权限如下:2010.06.26浙江大学计算机学院
SDCard读写要进行SDCard读写,必须先判断手机是否装有SDCard,并且可以进行读写。if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){FilesdCardDir=Environment.getExternalStorageDirectory();//获取SDCard目录FilesaveFile=newFile(sdCardDir,“itcast.txt”);FileOutputStreamoutStream=newFileOutputStream(saveFile);outStream.write("Android开发".getBytes());outStream.close();}2010.06.27浙江大学计算机学院
3、SQLite数据库编程在某些情况下,文件不是有效的如果多线程数据访问是相关的如果应用程序处理可能变化的复杂数据结构等等内置SQLite数据库支持数据库对于创建它们的包套件是私有的数据库不应该用来存贮文件SQLite是一个轻量级的软件库原子量性坚固性独立性耐久性体积大小只用几千字节一些SQL的指令只是部分支持,例如:ALTER、TABLE2010.06.28浙江大学计算机学院
SQLite数据库Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。2010.06.29浙江大学计算机学院
SQLiteDatabase的execSQL()和rawQuery()方法。execSQL()方法:可以执行insert、delete、update和CREATETABLE之类有更改行为的SQL语句;rawQuery()方法:可以执行select语句。execSQL()方法的使用例子:SQLiteDatabasedb=....;db.execSQL("insertintoperson(name,age)values('Android开发',4)");db.close();2010.06.30浙江大学计算机学院
创建数据库Context.createDatabase(Stringname,intversion,intmode,CursorFactoryfactory)创建一个新的数据库并返回SQLiteDatabase对象假如不能被创建,则抛出FileNotFoundExceptionSQLiteDatabasemydataBase=SQLiteDatabase.create(newCursorFactory(){//创建一个数据库//工厂类,当查询时调用来实例化一个光标@OverridepublicCursornewCursor(SQLiteDatabasedb,SQLiteCursorDrivermasterQuery,StringeditTable,SQLiteQueryquery){//TODOAuto-generatedmethodstubreturnnull;}});2010.06.31浙江大学计算机学院
创建数据库创建新的数据库SQLiteDatabasemyDataBase=this.openOrCreateDatabase("myDataBase.db",MODE_PRIVATE,newCursorFactory(){//创建新的数据库,名称myDatabase,模式MODE_PRIVATE,鼠标工厂//工厂类,一个可选工厂类,当查询时调用来实例化一个光标@OverridepublicCursornewCursor(SQLiteDatabasedb,SQLiteCursorDrivermasterQuery,StringeditTable,SQLiteQueryquery){//TODOAuto-generatedmethodstubreturnnull;}});2010.06.32浙江大学计算机学院
4、使用ContentProvider共享数据当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同,如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferencesAPI读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。第一步需要继承ContentProvider并重写下面方法:publicclassPersonContentProviderextendsContentProvider{publicbooleanonCreate()publicUriinsert(Uriuri,ContentValuesvalues)publicintdelete(Uriuri,Stringselection,String[]selectionArgs)publicintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs)publicCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder)publicStringgetType(Uriuri)}2010.06.33浙江大学计算机学院
使用ContentProvider共享数据第二步需要在AndroidManifest.xml使用对该ContentProvider进行配置,为了能让其他应用找到该ContentProvider,ContentProvider采用了authorities(主机名/域名)对它进行唯一标识,可以把ContentProvider看作是一个网站,authorities就是网站域名:2010.06.34浙江大学计算机学院