項目2任務(wù)3-頁面跳轉(zhuǎn)_第1頁
項目2任務(wù)3-頁面跳轉(zhuǎn)_第2頁
項目2任務(wù)3-頁面跳轉(zhuǎn)_第3頁
項目2任務(wù)3-頁面跳轉(zhuǎn)_第4頁
項目2任務(wù)3-頁面跳轉(zhuǎn)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2相關(guān)知識34任務(wù)小結(jié)與練習1任務(wù)實施任務(wù)引入與目標頁面跳轉(zhuǎn)一、任務(wù)引入與目標任務(wù)目標在任務(wù)3中,我們將新建一個AndroidStudio工程,創(chuàng)建2個頁面。使用Intent類,實現(xiàn)兩個活動之間的跳轉(zhuǎn)。任務(wù)引入一般來說,一個物聯(lián)網(wǎng)APP有若干個頁面,用戶使用時需要在頁面之間實現(xiàn)跳轉(zhuǎn)。所謂頁面跳轉(zhuǎn),實際上就是一個活動跳轉(zhuǎn)到另一個活動。二、相關(guān)知識Intent類Android的Intent,即意圖,是一個要執(zhí)行的操作的抽象描述,解決Android應(yīng)用的各項組件之間的通信。一個Intent對象是一個被動的數(shù)據(jù)結(jié)構(gòu),保存著要執(zhí)行的操作。Intent包括顯式和隱式兩類。顯式Intent直接用組件的名稱定義目標組件,直接實現(xiàn)明確Activity類名的啟動,更多地用于應(yīng)用程序內(nèi)部的傳遞消息;隱式Intent通過設(shè)置Action、Data、Category,篩選出合適的Activity啟動。顯式Intent類的常用方法(1)newIntent():用于創(chuàng)建一個意圖。(2)Intent對象.setClass(Content對象,Activity對象.class):setClass方法的第一個參數(shù)是Context(上下文)對象,setClass函數(shù)的第二個參數(shù)是一個Class對象。(3)startActivity(Intent對象):啟動意圖。二、相關(guān)知識Intent除了實現(xiàn)活動之間的跳轉(zhuǎn),還可以實現(xiàn)什么功能?課堂討論三、任務(wù)實施實施設(shè)備安裝了AndroidStudio開發(fā)環(huán)境的計算機。實施過程1.創(chuàng)建工程及配置如圖2-21所示,新建Android工程“AlertDialog”,在app→build.gradle中添加viewBinding框架:圖2-21添加viewBinding框架android.buildFeatures.viewBinding=true點擊同步。因為添加了viewBinding框架,所以會為每一個布局文件自動生成綁定類,比如會為activity_main.xml生成ActivityMainBinding類。三、任務(wù)實施如圖2-22所示,在MainActivity.java文件中,創(chuàng)建了ActivityMainBinding類對象binding1,在onCreate方法中實例化binding1,并通過binding1對象的getRoot方法得到activity_main.xml布局文件中的view。圖2-22實例化binding類三、任務(wù)實施2.第一個頁面設(shè)計(1)activity_main.xml布局文件。代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextView android:layout_width="wrap_content" android:layout_height="60dp" android:text="FirstActivity!"/><Button android:id="@+id/btn1" android:text="clickme,willjumptopage2" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="60dp"></Button></LinearLayout>在activity_main.xml布局文件中,添加了1個按鈕控件,id為btn1,文本內(nèi)容為“clickme,willjumptopage2”。三、任務(wù)實施(2)MainActivity.java活動文件。MainActivity.java活動文件中MainActivity類定義代碼如下:publicclassMainActivityextendsAppCompatActivity{ActivityMainBindingbinding1;//activity_main布局類對象-聲明@OverrideprotectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); binding1=ActivityMainBinding.inflate(getLayoutInflater());//獲取binding setContentView(binding1.getRoot());//通過getRoot拿到view binding1.btn1.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewview){ Intentintent1=newIntent(); //由MainActivity轉(zhuǎn)向SecondActivity intent1.setClass(MainActivity.this,SecondActivity.class); startActivity(intent1);//按照意圖1,啟動Activity } });}}三、任務(wù)實施在程序中:①binding1對象通過id獲取到btn1按鈕后,設(shè)置btn1的單擊事件監(jiān)聽。②在重寫btn1的onClick方法中,創(chuàng)建意圖intent。③setClass方法的第一個參數(shù)是Context(上下文)對象,Context是一個類,Activity是Context類的子類,也就是說,所有的Activity對象,都可以向上轉(zhuǎn)型為Context對象;setClass方法的第二個參數(shù)是Class對象,在當前場景下,傳入了需要被啟動的Activity類的class對象SecondActivity.class。④通過startActivity方法啟動意圖,實現(xiàn)跳轉(zhuǎn)。簡而言之,btn1實現(xiàn)由MainActivity轉(zhuǎn)向SecondActivity。需要注意的是,此時的SecondActivity活動還沒有,程序會報錯。接下來設(shè)計第二個頁面。三、任務(wù)實施3.第二個頁面設(shè)計(1)復制新的布局和活動文件。復制新的布局和活動文件,文件位置和第一個頁面是一樣的:在src→main→res→layout目錄中增加activity_second.xml文件,在src→main→java→entactivity中增加SecondActivity.java文件。(2)activity_second.xml布局文件。代碼如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".SecondActivity"><TextView android:layout_width="wrap_content" android:layout_height="60dp" android:text=“SecondActivity!"/><Button android:id="@+id/btn2" android:text="clickme,willjumptopage1" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="60dp"></Button></LinearLayout>在activity_second.xml布局文件中,添加了1個按鈕控件,id為btn2,文本內(nèi)容為“clickme,willjumptopage1”。三、任務(wù)實施(3)SecondActivity.java活動文件。SecondActivity.java活動文件中SecondActivity類定義代碼如下:publicclassMainActivityextendsAppCompatActivity{ActivityMainBindingbinding2;//activity_main布局類對象-聲明@OverrideprotectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); binding2=ActivityMainBinding.inflate(getLayoutInflater());//獲取binding setContentView(binding2.getRoot());//通過getRoot拿到view binding2.btn2.setOnClickListener(newView.OnClickListener(){ @Override publicvoidonClick(Viewview){ Intentintent2=newIntent(); //由MainActivity轉(zhuǎn)向SecondActivity intent2.setClass(MainActivity.this,SecondActivity.class); startActivity(intent2);//按照意圖2,啟動Activity } });}}在btn2按鈕的單擊事件監(jiān)聽器中,設(shè)置意圖:由SecondActivity轉(zhuǎn)向MainActivity。三、任務(wù)實施4.運行測試(1)活動注冊。測試前,注意需要將第二個Activity即SecondActivity在AndroidManifest.xml中注冊,如圖2-23所示。MainActivity默認是注冊好的。(2)結(jié)果展示。連接手機,運行效果如圖2-

溫馨提示

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

最新文檔

評論

0/150

提交評論