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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2相關知識34任務小結與練習1任務實施任務引入與目標頁面跳轉一、任務引入與目標任務目標在任務3中,我們將新建一個AndroidStudio工程,創(chuàng)建2個頁面。使用Intent類,實現兩個活動之間的跳轉。任務引入一般來說,一個物聯(lián)網APP有若干個頁面,用戶使用時需要在頁面之間實現跳轉。所謂頁面跳轉,實際上就是一個活動跳轉到另一個活動。二、相關知識Intent類Android的Intent,即意圖,是一個要執(zhí)行的操作的抽象描述,解決Android應用的各項組件之間的通信。一個Intent對象是一個被動的數據結構,保存著要執(zhí)行的操作。Intent包括顯式和隱式兩類。顯式Intent直接用組件的名稱定義目標組件,直接實現明確Activity類名的啟動,更多地用于應用程序內部的傳遞消息;隱式Intent通過設置Action、Data、Category,篩選出合適的Activity啟動。顯式Intent類的常用方法(1)newIntent():用于創(chuàng)建一個意圖。(2)Intent對象.setClass(Content對象,Activity對象.class):setClass方法的第一個參數是Context(上下文)對象,setClass函數的第二個參數是一個Class對象。(3)startActivity(Intent對象):啟動意圖。二、相關知識Intent除了實現活動之間的跳轉,還可以實現什么功能?課堂討論三、任務實施實施設備安裝了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類。三、任務實施如圖2-22所示,在MainActivity.java文件中,創(chuàng)建了ActivityMainBinding類對象binding1,在onCreate方法中實例化binding1,并通過binding1對象的getRoot方法得到activity_main.xml布局文件中的view。圖2-22實例化binding類三、任務實施2.第一個頁面設計(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,文本內容為“clickme,willjumptopage2”。三、任務實施(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轉向SecondActivity intent1.setClass(MainActivity.this,SecondActivity.class); startActivity(intent1);//按照意圖1,啟動Activity } });}}三、任務實施在程序中:①binding1對象通過id獲取到btn1按鈕后,設置btn1的單擊事件監(jiān)聽。②在重寫btn1的onClick方法中,創(chuàng)建意圖intent。③setClass方法的第一個參數是Context(上下文)對象,Context是一個類,Activity是Context類的子類,也就是說,所有的Activity對象,都可以向上轉型為Context對象;setClass方法的第二個參數是Class對象,在當前場景下,傳入了需要被啟動的Activity類的class對象SecondActivity.class。④通過startActivity方法啟動意圖,實現跳轉。簡而言之,btn1實現由MainActivity轉向SecondActivity。需要注意的是,此時的SecondActivity活動還沒有,程序會報錯。接下來設計第二個頁面。三、任務實施3.第二個頁面設計(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,文本內容為“clickme,willjumptopage1”。三、任務實施(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轉向SecondActivity intent2.setClass(MainActivity.this,SecondActivity.class); startActivity(intent2);//按照意圖2,啟動Activity } });}}在btn2按鈕的單擊事件監(jiān)聽器中,設置意圖:由SecondActivity轉向MainActivity。三、任務實施4.運行測試(1)活動注冊。測試前,注意需要將第二個Activity即SecondActivity在AndroidManifest.xml中注冊,如圖2-23所示。MainActivity默認是注冊好的。(2)結果展示。連接手機,運行效果如圖2-

溫馨提示

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

評論

0/150

提交評論