android核心基礎(chǔ)四大組件之a(chǎn)ctivity_第1頁
android核心基礎(chǔ)四大組件之a(chǎn)ctivity_第2頁
android核心基礎(chǔ)四大組件之a(chǎn)ctivity_第3頁
android核心基礎(chǔ)四大組件之a(chǎn)ctivity_第4頁
android核心基礎(chǔ)四大組件之a(chǎn)ctivity_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

四大組件之Activity簡介顯示一些控件也可以并處理用戶的做出響應(yīng)。Activity之間通過Intent定義類繼承

Activity簡單在AndroidManifest.xml的<application>節(jié)點中

Activity在文件中的配Name屬性用程序的。指定Activity之間的跳轉(zhuǎn)Activity之間的跳轉(zhuǎn)分為2種顯式跳轉(zhuǎn):在可以到那個類案例單文件中這兩個Activity類。工程中添加Activity配置如下。android:label="@string/app_name"> tools:context=".FirstActivity">android:text="我是第一個Activity"/>編寫FirstActivity類importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importpublicclassFirstActivityextends{protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);}publicvoidskip2Second(ViewIntentintent=newIntent(this,}}newnewIntent(this,,可啟動其他程序中的Activity componentName就是用來封裝我們寫的這些類的位置 ComponentNamecomponentName=newComponentName(Context.this,Intentintent=newComponentNamecomp=getIntent() StringpackageName=comp.getPackName();StringclassName=<activity配置意圖過濾器<activity配置意圖過濾器<intent-filter該Activity。這里使用Android提供的默認(rèn)category即可--><action<categoryIntentintent=new注意:若文件中的Activity為則此Activity將作為程序的,有幾個作為的Activity,apk文件安裝<intent-filter>中至少配置一個<action>和一個<category>如果一個意圖可以匹配多個Activity,Android<data案例-Activity隱式跳轉(zhuǎn)將Android應(yīng)用的源碼安裝在:D:\AndroidSource_GB\AndroidSource_GB ent-filter有多個,我們選擇一個適合我們<dataandroid:scheme="http"<dataandroid:scheme="https"<dataandroid:scheme="about"<dataandroid:scheme="javascript"ity類方法的代碼:publicpublicvoidskip2Browser(ViewIntentintent=new }打開發(fā)送界 <dataandroid:scheme="sms"<dataandroid:scheme="smsto"。在該方法中實現(xiàn)業(yè)務(wù)邏輯。publicvoidskip2Mms(ViewIntentintent=new }使用Intent傳遞數(shù)據(jù)Intent可傳遞的數(shù)據(jù)類型有<activity配置意圖過濾器修改AndroidManifest.xml<activity配置意圖過濾器<<intent-filter該Activity--><data<data在FirstActivity布局中添加一個按鈕,給該按鈕綁定,點擊該按鈕實現(xiàn)跳轉(zhuǎn)到Activity界面。該方法如下發(fā)送數(shù)據(jù)給publicvoidsendData2Second(Viewview)創(chuàng)建一個IntentIntentintent=new設(shè)置intent.putExtra("name"," ArrayList<String>list=newi=0;i<10;i++){list.add("} Bundlebundle=new//啟動Activity}編寫SecondActivitypublicclassSecondActivityextends{protectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);IntentintentgetIntent();//注意這個是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界面,同時控制臺也成功打印出了通過創(chuàng)建Activity獲取返回使用startActivityForResult(Intentintent,intreq方法打開重寫onActivityResult(intreqode,intresultCode,Intentdata)方新Activity中調(diào)用setResult(intresultCodeIntent“人品計算器”來演示獲取Activity返回數(shù)案例-人品計算器跳轉(zhuǎn)時使用startActivityForResult在被開啟的新的頁面里,調(diào)用setResult方法設(shè)置回傳的數(shù)據(jù)注意:設(shè)置完后不會立刻傳遞到前一個頁面,而是等待當(dāng)前頁面關(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算了,跟你沒什么人品好談的}elseif(rp>5&&rp<=10)rpText是我不好...不應(yīng)該跟你談人品問題的}elseif(rp>10&&rp<=15)rpText殺過人沒有?放過火沒有?你應(yīng)該無惡不做吧}elseif(rp>15&&rp<=20)rpText="你貌似應(yīng)該三歲就偷看隔壁大 的吧}elseif(rp>20&&rp<=25)rpText你的人品之低下實在讓人驚訝啊}elseif(rp>25&&rp<=30)rpText你的人品太差了。你應(yīng)該有干壞事的嗜好吧}elseif(rp>30&&rp<=35)rpText你的人品真差!肯定經(jīng)常做偷雞摸狗的事}elseif(rp>35&&rp<=40)rpText="你擁有如此差的人品請經(jīng)常祈求佛 你吧}elseif(rp>40&&rp<=45)rpText}elseif(rp>45&&rp<=50)rpText"你隨地大小便之類的事沒少干吧}elseif(rp>50&&rp<=55)rpText="你的人品太差了..稍 就會去干壞事了吧}elseif(rp>55&&rp<={rpText}elseif(rp>60&&rp<=65)rpText"你的人品比較差了..要好好的約束自己啊}elseif(rp>65&&rp<=70)rpText"你的人品勉勉強強..要自己好自為之}elseif(rp>70&&rp<={rpText"有你這樣的人品算是不錯}elseif(rp>75&&rp<=80)rpText"你有較好的人品..繼續(xù)保持}elseif(rp>80&&rp<=85)rpText"你的人品不錯..應(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"你的人品竟然負溢出了...我對你無語}returnActivity有三種狀

Activity生命周期,2、當(dāng)它上面有另外一個Activity,使它失去了焦點但仍然對用戶可見時3、當(dāng)它完全被另一個Activity覆蓋時則處于停止?fàn)顅oidvoid可見void調(diào)用void可見void部分可見voidvoidActivity生命周期圖如下所,:→onStart(可見不可交互)→onResume(可見可交互點擊back鍵關(guān)閉一個Activity時生命周期的過程是onPause(部分可見不可交互)→onStop(完全不可見)→onDestroy(銷毀當(dāng)開啟一個新的ti以框形式),新的tvty后面的tity給蓋住一部分時,后面的tvity:部分可見,不可交互)。注意:指定Activity以框的形式顯示當(dāng)把新開啟的Activity(以框形式)給關(guān)閉時后面的activity的生命周期執(zhí)行的方法是onResume(可見,可交互生命周期的方法執(zhí)行順序是:onPause→onStop(完全不可見)onRestart→onStart→onResume(可見,可交互)。可見,但是不能響應(yīng)用戶操作,在該方法中可進行操作暫停。初始化布局以及一些大量的數(shù)據(jù)。onDestroy把數(shù)據(jù)給釋放掉橫豎屏切換時,默認(rèn)情況下會把activity先銷毀再創(chuàng)建,在類似游戲這一類的應(yīng)用中,這驗是非常差的。不讓Activity在橫豎屏切換時銷毀,只需要在文件Activity時配置<activity>節(jié)點的幾個屬性即可,其方式如下:針旋轉(zhuǎn)90度,還是橫屏),portrait豎屏,旋Activity的任務(wù)棧任務(wù)棧是用來提升用戶體驗而設(shè)計的程序打開時就創(chuàng)建了一個任務(wù)棧任務(wù)??梢砸苿拥?并且保留了每一個activity的狀態(tài).差,需要點擊多次返回才可以把程序退出了。每開啟一次頁面都會在任務(wù)棧中添加一個Activity還會造成數(shù)據(jù)冗余重復(fù)數(shù)據(jù)太多會導(dǎo)致內(nèi)存溢出的問題(OOM)Activity的啟動模式standard模式是默認(rèn)的啟動模式,不用為<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實例的序列號用于跳轉(zhuǎn)到下一個FirstActivity界面。連續(xù)點擊幾次按鈕,將會出現(xiàn)下面:從上圖可以看出,三個都是FirstActivity的實例,但序列號不同,并且我們再新建一個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時,系統(tǒng)發(fā)現(xiàn)存在有FirstActivity實卻不是唯一的,說明從SecondActivity跳轉(zhuǎn)到FirstActivity時,沒有生成新這就是ilk模式,如果發(fā)現(xiàn)有對應(yīng)的AtiAti實例之上的其他ti實例統(tǒng)統(tǒng)出棧,使此Ati前。即如果啟動的ti不存在就創(chuàng)建,如果存在,就會清空自己上邊所有的界面,使自己變?yōu)闂m?。tvty這個新的棧結(jié)構(gòu)中,不再有其他Activity實例進入。修改FirstActivity的launode="standard",SecondActivity的launode="sTextVie

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論