Android 技巧汇总.docx
《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的Co
11、m.google.provide匚NOICPad,然后就到Androidmanfcst.xml中找到authorities为COm.google.provider.NOlePad的provider.这个就是后面要讲的8UemPrOVider,然后就加载这个contentprovider在这里是NO(CPadPrDVidCr然后两用NotcPikiProvidcr的gcttypc函数.并把上述UR【传绐这个函数,函数返回URl所对应的类型这里返回NOlgCoNTENTTEM_TYPE,代表条日志记录,而CONTENTTEN1.TYPE=*vnd.andrid.cursor.itc!nvnd.g(
12、gk.fHcOPrridCpublicStringgctTypcUriuri)(switch(sUriMatcher.natch(uri)(caseNOTES:returnNoteCONTENTJYPE:caseNOTE.1D:*e(urnNOtgCONTENTTEMjrYPE;defauh:thrownewHegalArgumentException(vUnknownURIuri);)I上面的sUriMatcher.match是用来检测ri是否能够被处理,而SUriMatchermatch(Uri)返回值其实是由SUriMatchcr=newUriMatchcrtUriMacchc1.NOe
13、MATCH);sUriMatcher.a(MURI(No(ePad.Al11HORITY/no:确定的.然后系SE运用获得的VnCi.android.cursor.itcm/vnd.googlc.nctc.和”到androidmanfcs1.xml中去找匹配的activity.intcnt-fihcrandroidJabcl=actionandroin.EDITMOactionandroid:nameicom.andrcid.noVdalaandroid:mimcTypc=sd.3ndrCid.cursor.iicnVvnd.googlc.noc”f正好NOtCEdigr这个activity的
14、intent-filter满意上述条件,这样就找到了NoicEditor于是系统加我这个类并实例化,运行,然后就到了NowEdiI。!的OnC情He函数中(见后续文章)。小技巧1 .在吩咐行中运用adbshek吩咐进入系统中,然后”CdaPp”进入应用程序所在书目JrmXXX”就可以州除你指定的叩k,从而去掠其在系统顶层界面占据的图标,若两次”data则可以进入应用程序运用的数据竹目,你的数据可以保存在这里,例如NOI叩而就是把其数据库放在它的databases书目下.名为notc-pad.db.2 .第一次比动模拟涔会比较慢,但以后就别关闭模拟器了,修改代码,网试都不须要再次自动的,干脆修改
15、后Rin或debug就是,1.在测试时,如何实现一个提示可以运用1. TOaSt.makeTet(this,这是一个提示,Toast.1.ENGTH_SHORT).show();2. 从资源文件String.xml里面取提示信息3. Toast.makeText(this,getString(R.string.welcome),ToaSt.1.ENGTH.SHoRT).show。;这个提示会几秒钟后消逝2.可以运用AIertDiaIog.BuiIder才产生一个提示框.例如像messagebox那样的1. newAIertDiaIog.Builder(this)2. .SetTitIeCAnd
16、roid提示“)3. .setMessage(这是一个提示,请确定)4. .show();带一个确定的对话框1. newAlertDIaIog.BuiIder(Ihis)2. .setMessage(这是其次个提示“)3. .setPositiveButton(i5Ef4. newDialoginterface.OnClick1.istener()5. publicvoidonClick(DialogInterfacedialoginterface,intl)按钮事务).show();AIertDiaIog-BuiIder还存很多困雄的用法,有确定和取消的对话框1. newAIertDiaIo
17、g.BuiIder(Ihis)2. .semtle(提示)3. .setMessage(fijHH?)4. .setIcon(R.drawable.quit)5. .setPositiveButton(确定,newDialoglnterface-OnCIick1.istenerO6. publicvoidonClick(Dialoglnterfacedialog,intWhichButton)7. SetReSUlt(RESU1.TJDK);确定按钮事务8. finish();9. 10. )11. .setNegativeButton(-取消,newDialoglnterface.OnCIi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 技巧汇总 技巧 汇总
链接地址:https://www.31ppt.com/p-7210758.html