《Android 技巧汇总.docx》由会员分享,可在线阅读,更多相关《Android 技巧汇总.docx(52页珍藏版)》请在优知文库上搜索。
1、书目Qv0.入门实例削析I1.在测试时,如何实现一个提示82.可以运用AIertDiaIog.Builder才产生一个提示框94 .menu的用法101 .简洁的代码IO2 .menu实现的两种方法IO5 .Aclivily的切换141 .代码142 .详解:156 .AlroidUI1.ayout191. AbeoIute1.ayoui197. Iab以及HosfFab操作208. 1.ist(图片/按钮/标Sfi/文本)261.ISTM-261.lSTMn36IJST例三409 .调用阅读器领入某网址4210 .监控应用程序包的安装&删除42方法一:42方法二:4511 .运用IbaSI给
2、出-个字符串5212 .把一个字符串写进文件5213 .把文件内容读出到一个字符串5314 .调用AndroidinstaU0安装和和段程序5415 .结束某个进程5516 .设置默认来电铃声5517 .开机自启动5618 .线程与子线程57handlcrMcssagc实例5819 .Service591 .什么是SerViCe592 .如何运用SCrViCC603 .Service的生命周期65网)常用界面截图:66提示166提%:2674 堆670.入门实例剖析1开卷语俗话说,“把读唐诗三百首,不会作诗也会吟,最近收集了很多AndrOid的示例代码,从这些代码的回读和试骁中学习到很多学问,
3、从而产生写这个系列的准备,目标就是一步步跟蓿实例进行动手实作,真正从“检”中体会和学习Andgid开发.本文目标是AndmKl自带的一个范例程序:记事本.预备学问搭建开发环境,尝试编写HeIk)Wodd”,了解AiKlroid的地木概念,熟识Andtnid的APl(官方文档中都有,不赞述)。程序截图先来简洁了解下程序运行的效果ImQflB1:19PMlEditnote第一篇,写点啥好呢?Android看起来很美,不知道Jl正摸起来啥感觉哈?!程序入口点类似于Win32程序里的WinMain函数,Andwid自然也有它的程序入口点。它通过花AndroidManifcstAinl文件中配置来指明.
4、可以看到名为NotCS1.iSt的activity打点下有这样个intcnl-11ltcr,Jiaction为android.intcnt.action.MAIN,Category指定为android.ineN心IegoIy1.AUNCHER这就指明白这个activity是作为入口activity,系统查找到它后,就会创建这个acli3y实例来运行,若未发觉就不启动(你可以把MAIN改名字试试.imenNotes1.ist详解就从入口点所在的aciviiy(见图I)起先,可以看到这个aciMy最近要的功能就是显示11志列表。这个程序的日志都存放在SqIilC数据库中,因此须要读取出全部的日志记
5、录并显示。先来看两个重要的私有数据.第个PROJEenoN字段指明白“日志列农”所关注的数据阵中的字段(即只须要ID和Tide就可以了,android:id=android:id.tcxtI,android:Iay(HH_widih=fiH_parcnl”android:ayouUeight=7androidattrlistPrefe11edI(enHeigh(viindroid:lexlAppeanince=?andnid:allr?texlAppeanince1.argeandrodgravity=ccntcr-vcrticaandraid:paddinglxft=5dipMandroid
6、:SingIe1.ine=true.t就是用来显示一条日志记录的ItxiVicw,最终两个字段指明门实际的字段映射关系,通过这个lx(View来显示一条口忐记录的IiUe字段。处理“选择日志”事务既然有了“口志列衣”,就白然要考虑如何处理某一条Fl志的单击小务,这通过柬我On1.islIteinClick方法来完成.0VCTTidCprotecledvoidon1.is(hemClick(1.istView1,Viewv.in(position,longid)(Uriuri=ContentUris.withAppendedld(gelIntent().getDala().id);Stringa
7、c(ion=gctln(cnt(),gctAclion();if(I11ent.ACTION.PICK.equals(ac(ion)Inlent.ACTION_GET_CONTENT.equals(action)/Thecalleriswaitingforustoreturnanoteselectedby/theuser.Thehaveclick.Intent深度剖析那么,上面这句sta11Ac(ivity(ncwlntcnt(ln(cnt.ACTION_EDIT,Uli)执行后会发生什么事情呢?这时候AndrOid系统就跳出来接管了,它会依据inien中的信息找到对应的activity,在这
8、里找到的是NoteEditor这个activity.然后创建2个activity的实例并运行.那么.Android又是如何找到NowEditor这个对应的activity的呢?这就是icnt发挥作用的时刻了。newIntenKInlent.ACTION-EDlT.uri这里的ImCm.ACT1ON_EDIT=,另外通过设置断点,我们看下这里的Uri值:二*u11-UnSHerychcaflUriOd-8300S9050968)EJauthority=UhSPart(id=830058677160)Adecoded-com.Qogte.provider.NotePocT1encoded-acom
9、.9ogle.fxov1der.NotePad三iffrg11ent=UnSPaftSEfrptyPart(d=8X003817304)SKosyWOTCACHSrEifPath-UnSPathPartOd-8X059050944)decoded-NOTCACHED*(Saencoded=rhotes然后我们再来看下Androidmanfesl.xm其中有这个providerproviderandroid:Mme二No发觉没有?它也有com.google.pvider.NotePad,这个是conlenCcom.google.providcr.NoacVQionandix)id:name=*c
10、om.android.noepactionandroidznamc=,android.intcnt.actionJNSEK*上面第一个加cmf11ur中有个action名为android.inem.action.EDIT,而前面我们创建的Iinent也正好是lntcnt.ACnON_EDIT=.想必大家已经明白是怎么回事门“下面就进入activity选择机制了:系统从intent中获得道uri.得到了COmCnCOm.gogc.prvvkr.NICPddnoleWI.去抻起先的content:标识.得到com.gglc.proVidcr.NotcPadZnotcs/1.然后获褥曲Ifii的Com.google.provide匚NOICPad,然后就到Androidmanfcst.xml中找到authorities为COm.google.provider.NOlePad的provider.这个就是后面要讲的8UemPrOVider,然后就加载这个contentprovider在这里是NO(CPadPrDVidCr然后两用No