




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
四大組件之Activity簡(jiǎn)介顯示一些控件也可以并處理用戶的做出響應(yīng)。Activity之間通過(guò)Intent定義類繼承
Activity簡(jiǎn)單在AndroidManifest.xml的<application>節(jié)點(diǎn)中
Activity在文件中的配Name屬性用程序的。指定Activity之間的跳轉(zhuǎn)Activity之間的跳轉(zhuǎn)分為2種顯式跳轉(zhuǎn):在可以到那個(gè)類案例單文件中這兩個(gè)Activity類。工程中添加Activity配置如下。android:label="@string/app_name"> tools:context=".FirstActivity">android:text="我是第一個(gè)Activity"/>編寫FirstActivity類importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importpublicclassFirstActivityextends{protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);}publicvoidskip2Second(ViewIntentintent=newIntent(this,}}newnewIntent(this,,可啟動(dòng)其他程序中的Activity componentName就是用來(lái)封裝我們寫的這些類的位置 ComponentNamecomponentName=newComponentName(Context.this,Intentintent=newComponentNamecomp=getIntent() StringpackageName=comp.getPackName();StringclassName=<activity配置意圖過(guò)濾器<activity配置意圖過(guò)濾器<intent-filter該Activity。這里使用Android提供的默認(rèn)category即可--><action<categoryIntentintent=new注意:若文件中的Activity為則此Activity將作為程序的,有幾個(gè)作為的Activity,apk文件安裝<intent-filter>中至少配置一個(gè)<action>和一個(gè)<category>如果一個(gè)意圖可以匹配多個(gè)Activity,Android<data案例-Activity隱式跳轉(zhuǎn)將Android應(yīng)用的源碼安裝在:D:\AndroidSource_GB\AndroidSource_GB ent-filter有多個(gè),我們選擇一個(gè)適合我們<dataandroid:scheme="http"<dataandroid:scheme="https"<dataandroid:scheme="about"<dataandroid:scheme="javascript"ity類方法的代碼:publicpublicvoidskip2Browser(ViewIntentintent=new }打開發(fā)送界 <dataandroid:scheme="sms"<dataandroid:scheme="smsto"。在該方法中實(shí)現(xiàn)業(yè)務(wù)邏輯。publicvoidskip2Mms(ViewIntentintent=new }使用Intent傳遞數(shù)據(jù)Intent可傳遞的數(shù)據(jù)類型有<activity配置意圖過(guò)濾器修改AndroidManifest.xml<activity配置意圖過(guò)濾器<<intent-filter該Activity--><data<data在FirstActivity布局中添加一個(gè)按鈕,給該按鈕綁定,點(diǎn)擊該按鈕實(shí)現(xiàn)跳轉(zhuǎn)到Activity界面。該方法如下發(fā)送數(shù)據(jù)給publicvoidsendData2Second(Viewview)創(chuàng)建一個(gè)IntentIntentintent=new設(shè)置intent.putExtra("name"," ArrayList<String>list=newi=0;i<10;i++){list.add("} Bundlebundle=new//啟動(dòng)Activity}編寫SecondActivitypublicclassSecondActivityextends{protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);IntentintentgetIntent();//注意這個(gè)是Stringdata=intent.getData().toString();Bundleextras=Stringname=(String)Stringpwd=(String)extras.get("pwd");List<String>list=(List<String>)extras.get("list");}發(fā)現(xiàn)成功跳轉(zhuǎn)到了SecondActivity界面,同時(shí)控制臺(tái)也成功打印出了通過(guò)創(chuàng)建Activity獲取返回使用startActivityForResult(Intentintent,intreq方法打開重寫onActivityResult(intreqode,intresultCode,Intentdata)方新Activity中調(diào)用setResult(intresultCodeIntent“人品計(jì)算器”來(lái)演示獲取Activity返回?cái)?shù)案例-人品計(jì)算器跳轉(zhuǎn)時(shí)使用startActivityForResult在被開啟的新的頁(yè)面里,調(diào)用setResult方法設(shè)置回傳的數(shù)據(jù)注意:設(shè)置完后不會(huì)立刻傳遞到前一個(gè)頁(yè)面,而是等待當(dāng)前頁(yè)面關(guān)閉后使用默認(rèn)的Activity和默認(rèn)的布局文件,修改布局文件。activity_main.xml tools:context=".MainActivity"> android:onClick="click"/>屬性的作用是給界面設(shè)置背景,需要添加到/res/drawable- publicclassMainActivityextendsActivitypublicclassMainActivityextendsActivityprivateTextViewtv;privateEditTextet;protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);tv=(TextView)findViewById(R.id.tv);et=(EditText)findViewById(R.id.et);}publicvoidclick(Viewview)Stringdata=if(data==null||"".equals(data.trim())||data.length()>10){}byte[]bytes=intresult=for(byteb:{result+=}result=Math.abs(result%Intentintent=new }**protectedvoidonActivityResult(int ode,resultCode,Intentdata) ode,resultCode,Bundleextras=Stringresult=(String)}}3、新建創(chuàng)建CalcActivity繼承自Activity類,并在AndroidManifest.xml中添加該類publicpublicclassCalcActivityextendsActivityprotectedvoidonCreate(BundlesavedInstanceState)Intentintent=Bundleextras=intdata=(Integer)Stringresult=Intentintent2=new}}privateStringgetRPText(int{StringrpText=null;if(rp==0){rpText}elseif(rp>0&&rp<=5)rpText算了,跟你沒(méi)什么人品好談的}elseif(rp>5&&rp<=10)rpText是我不好...不應(yīng)該跟你談人品問(wèn)題的}elseif(rp>10&&rp<=15)rpText殺過(guò)人沒(méi)有?放過(guò)火沒(méi)有?你應(yīng)該無(wú)惡不做吧}elseif(rp>15&&rp<=20)rpText="你貌似應(yīng)該三歲就偷看隔壁大 的吧}elseif(rp>20&&rp<=25)rpText你的人品之低下實(shí)在讓人驚訝啊}elseif(rp>25&&rp<=30)rpText你的人品太差了。你應(yīng)該有干壞事的嗜好吧}elseif(rp>30&&rp<=35)rpText你的人品真差!肯定經(jīng)常做偷雞摸狗的事}elseif(rp>35&&rp<=40)rpText="你擁有如此差的人品請(qǐng)經(jīng)常祈求佛 你吧}elseif(rp>40&&rp<=45)rpText}elseif(rp>45&&rp<=50)rpText"你隨地大小便之類的事沒(méi)少干吧}elseif(rp>50&&rp<=55)rpText="你的人品太差了..稍 就會(huì)去干壞事了吧}elseif(rp>55&&rp<={rpText}elseif(rp>60&&rp<=65)rpText"你的人品比較差了..要好好的約束自己啊}elseif(rp>65&&rp<=70)rpText"你的人品勉勉強(qiáng)強(qiáng)..要自己好自為之}elseif(rp>70&&rp<={rpText"有你這樣的人品算是不錯(cuò)}elseif(rp>75&&rp<=80)rpText"你有較好的人品..繼續(xù)保持}elseif(rp>80&&rp<=85)rpText"你的人品不錯(cuò)..應(yīng)該一表人才吧}elseif(rp>85&&rp<=90)rpText="你的人品真好..做好事應(yīng)該是你 吧}elseif(rp>90&&rp<=95)rpText="你的人品太好了..你就是當(dāng)代 啊}elseif(rp>95&&rp<=rpText"}elseif(rp==100)rpText"}elserpText"你的人品竟然負(fù)溢出了...我對(duì)你無(wú)語(yǔ)}returnActivity有三種狀
Activity生命周期,2、當(dāng)它上面有另外一個(gè)Activity,使它失去了焦點(diǎn)但仍然對(duì)用戶可見時(shí)3、當(dāng)它完全被另一個(gè)Activity覆蓋時(shí)則處于停止?fàn)顅oidvoid可見void調(diào)用void可見void部分可見voidvoidActivity生命周期圖如下所,:→onStart(可見不可交互)→onResume(可見可交互點(diǎn)擊back鍵關(guān)閉一個(gè)Activity時(shí)生命周期的過(guò)程是onPause(部分可見不可交互)→onStop(完全不可見)→onDestroy(銷毀當(dāng)開啟一個(gè)新的ti以框形式),新的tvty后面的tity給蓋住一部分時(shí),后面的tvity:部分可見,不可交互)。注意:指定Activity以框的形式顯示當(dāng)把新開啟的Activity(以框形式)給關(guān)閉時(shí)后面的activity的生命周期執(zhí)行的方法是onResume(可見,可交互生命周期的方法執(zhí)行順序是:onPause→onStop(完全不可見)onRestart→onStart→onResume(可見,可交互)。可見,但是不能響應(yīng)用戶操作,在該方法中可進(jìn)行操作暫停。初始化布局以及一些大量的數(shù)據(jù)。onDestroy把數(shù)據(jù)給釋放掉橫豎屏切換時(shí),默認(rèn)情況下會(huì)把a(bǔ)ctivity先銷毀再創(chuàng)建,在類似游戲這一類的應(yīng)用中,這驗(yàn)是非常差的。不讓Activity在橫豎屏切換時(shí)銷毀,只需要在文件Activity時(shí)配置<activity>節(jié)點(diǎn)的幾個(gè)屬性即可,其方式如下:針旋轉(zhuǎn)90度,還是橫屏),portrait豎屏,旋Activity的任務(wù)棧任務(wù)棧是用來(lái)提升用戶體驗(yàn)而設(shè)計(jì)的程序打開時(shí)就創(chuàng)建了一個(gè)任務(wù)棧任務(wù)??梢砸苿?dòng)到,并且保留了每一個(gè)activity的狀態(tài).差,需要點(diǎn)擊多次返回才可以把程序退出了。每開啟一次頁(yè)面都會(huì)在任務(wù)棧中添加一個(gè)Activity還會(huì)造成數(shù)據(jù)冗余重復(fù)數(shù)據(jù)太多會(huì)導(dǎo)致內(nèi)存溢出的問(wèn)題(OOM)Activity的啟動(dòng)模式standard模式是默認(rèn)的啟動(dòng)模式,不用為<activity>配置android:laun屬性即可,當(dāng)然也可以指定值為standardpublicpublicclassFirstActivityextends{publicvoidonCreate(BundleTextViewtextView=(TextView)findViewById(R.id.tv);Buttonbutton=(Button)findViewById(R.id.bt);button.setOnClickListener(newView.OnClickListener(){publicvoidonClick(View{Intentintent=}}}FirstActivity界面中的TextView用于顯示當(dāng)前Activity實(shí)例的序列號(hào)用于跳轉(zhuǎn)到下一個(gè)FirstActivity界面。連續(xù)點(diǎn)擊幾次按鈕,將會(huì)出現(xiàn)下面:從上圖可以看出,三個(gè)都是FirstActivity的實(shí)例,但序列號(hào)不同,并且我們?cè)傩陆ㄒ粋€(gè)Activity命名為SecondActivity,如下publicpublicclassSecondActivityextends{protectedvoidonCreate(BundleTextViewtextView=(TextView)findViewById(R.id.tv);Buttonbutton=(Button)findViewById(R.id.button);button.setOnClickListener(newView.OnClickListener(){publicvoidonClick(View{Intentintent=}}}然后將之前的FirstActivity跳轉(zhuǎn)代碼改為IntentIntentintent=newIntent(FirstActivity.this,SecondActivity.cla當(dāng)從SecondActivity跳轉(zhuǎn)到FirstActivity時(shí),系統(tǒng)發(fā)現(xiàn)存在有FirstActivity實(shí)卻不是唯一的,說(shuō)明從SecondActivity跳轉(zhuǎn)到FirstActivity時(shí),沒(méi)有生成新這就是ilk模式,如果發(fā)現(xiàn)有對(duì)應(yīng)的AtiAti實(shí)例之上的其他ti實(shí)例統(tǒng)統(tǒng)出棧,使此Ati前。即如果啟動(dòng)的ti不存在就創(chuàng)建,如果存在,就會(huì)清空自己上邊所有的界面,使自己變?yōu)闂m?。tvty這個(gè)新的棧結(jié)構(gòu)中,不再有其他Activity實(shí)例進(jìn)入。修改FirstActivity的launode="standard",SecondActivity的launode="sTextVie
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZJWL 001-2024 大宗商品供應(yīng)鏈金融動(dòng)產(chǎn)質(zhì)押監(jiān)管倉(cāng)儲(chǔ)服務(wù)規(guī)范
- T-ZNZ 264.3-2024 重金屬中度污染農(nóng)田土壤修復(fù)和安全利用技術(shù)規(guī)范 第3部分:超積累東南景天與芝麻輪作
- 二零二五年度服裝品牌廠家全國(guó)代理合作協(xié)議
- 2025年度電影院包場(chǎng)租賃及廣告合作合同
- 二零二五年度金融科技股權(quán)投資合同協(xié)議
- 二零二五年度工傷事故賠償調(diào)解協(xié)議(含傷殘?jiān)u定)
- 二零二五年度全包裝修合同模板含定制家具制作
- 2025年度離職賠償協(xié)議書中的離職員工離職通知及手續(xù)辦理
- 二零二五年度聯(lián)防聯(lián)控疫情防控科研合作合同
- 2025年度線上虛擬購(gòu)物體驗(yàn)合同書
- 生產(chǎn)車間管理制度辦法
- 機(jī)電企業(yè)管理導(dǎo)論第1章課件
- 水平一足球全冊(cè)教案
- 蘇教版科學(xué)二年級(jí)下冊(cè)全冊(cè)教案
- 約束評(píng)分標(biāo)準(zhǔn)
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 法律和道德的關(guān)系 課件
- GB 16780-2021水泥單位產(chǎn)品能源消耗限額
- 全面推進(jìn)依法行政課件
- 政務(wù)服務(wù)一網(wǎng)通辦平臺(tái)解決方案-最新
- 第十四屆全國(guó)交通運(yùn)輸行業(yè)職業(yè)技能競(jìng)賽(公路收費(fèi)及監(jiān)控員)賽項(xiàng)題庫(kù)-上(單選題匯總-共3部分-1)
評(píng)論
0/150
提交評(píng)論