企業(yè)網(wǎng)站建設(shè)程序網(wǎng)站建設(shè)推廣
文章目錄
- 一 App的開發(fā)特點
- 1.1 App的運行環(huán)境
- 1.2 App開發(fā)語言
- 1.3 java語言開發(fā)
- 1.4 Kotlin語言開發(fā)
- 1.5 XML
- 1.6 App連接的數(shù)據(jù)庫
- 二 App的工程結(jié)構(gòu)
- 2.1 App工程目錄結(jié)構(gòu)
- 2.2 構(gòu)建工具Grade
- 2.3 編譯配置文件build.gradle
- 2.4 運行配置文件AndroidManifest.xml
- 2.4.1 application
- 2.4.2 activity
- 三 App的設(shè)計規(guī)范
- 3.1 界面設(shè)計與代碼邏輯
- 3.2 完整的頁面創(chuàng)建過程包括三個步驟:
- 3.3 XML標記描繪應(yīng)用界面
- 3.4 Java代碼書寫程序邏輯
- 3.5 App的活動頁面
- 3.5.1 創(chuàng)建新的App頁面
- 3.5.2 快速生成頁面源碼
- 3.5.3 跳轉(zhuǎn)頁面的實現(xiàn)
一 App的開發(fā)特點
1.1 App的運行環(huán)境
- App是在手機上運行的一類應(yīng)用軟件,而應(yīng)用軟件依附于操作系統(tǒng)。
- 智能手機流行的操作系統(tǒng)有兩種,分別是安卓手機的Android和蘋果手機的iOS。
- App開發(fā)為Android上的應(yīng)用開發(fā),Android系統(tǒng)基于Linux內(nèi)核,但不等于Linux系統(tǒng),故App應(yīng)用無法在Linux系統(tǒng)上運行。
- Android Studio是谷歌官方推出的App開發(fā)環(huán)境,它提供了三種操作系統(tǒng)的安裝包,分別是Windows、Mac和Linux。
- 開發(fā)者可以在電腦上安裝Android Studio,并使用Android Studio開發(fā)App項目,但是編譯出來的App在電腦上跑不起來。那該怎樣驗證App的界面展示及其業(yè)務(wù)邏輯是否正確呢?
- 為了提供App開發(fā)的功能測試環(huán)境,一種辦法是利用Android Studio創(chuàng)建內(nèi)置的模擬器,然后啟動內(nèi)置模擬器,再在模擬器上運行App應(yīng)用。另一種辦法是使用真實手機測試App,該辦法在實際開發(fā)中更為常見。
- 利用真機調(diào)試要求具備以下5個條件:
- 使用數(shù)據(jù)線把手機連到電腦上
- 手機的電源線拔掉插頭就是數(shù)據(jù)線。數(shù)據(jù)線長方形的一端接到電腦的USB接口,即可完成手機與電腦的連接。
- 在電腦上安裝手機的驅(qū)動程序
- 一般電腦會把手機當(dāng)作USB存儲設(shè)備一樣安裝驅(qū)動,大多數(shù)情況會自動安裝成功。如果遇到少數(shù)情況安裝失敗,需要先安裝手機助手,由助手軟件下載并安裝對應(yīng)的手機驅(qū)動。
- 打開手機的開發(fā)者選項并啟用USB調(diào)試
- 手機出廠后默認關(guān)閉開發(fā)者選項,需要開啟開發(fā)者選項才能調(diào)試App。
- 打開手機的設(shè)置菜單,進入“系統(tǒng)”→“關(guān)于手機”→“版本信息”頁面,這里有好幾個版本項,每個版本項都使勁點擊七、八下,總會有某個版本點擊后出現(xiàn)“你將開啟開發(fā)者模式”的提示。繼續(xù)點擊該版本開啟開發(fā)者模式,然后退出并重新進入設(shè)置頁面,此時就能在“系統(tǒng)”菜單下找到“開發(fā)者選項”或“開發(fā)人員選項”了。進入“開發(fā)者選項”頁面,啟用“開發(fā)者選項”和“USB調(diào)試”兩處開關(guān),允許手機通過USB接口安裝調(diào)試應(yīng)用。
- 將連接的手機設(shè)為文件傳輸模式,并允許計算機進行USB調(diào)試
- 手機通過USB數(shù)據(jù)線連接電腦后,屏幕彈出選擇列表,請求選擇某種USB連接方式。這里記得選中“傳輸文件”,因為充電模式不支持調(diào)試App。
- 選完之后手機桌面彈出確認窗口,提示開發(fā)者是否允許當(dāng)前計算機進行USB調(diào)試。這里勾選“始終允許使用這臺計算機進行調(diào)試”選項,再點擊右下角的確定按鈕,允許計算機在手機上調(diào)試App
- 手機要能正常使用
- 鎖屏狀態(tài)下,Android Studio向手機安裝App的行為可能會被攔截,所以要保證手機處于解鎖狀態(tài),才能順利通過電腦安裝App到手機上。
- 經(jīng)過以上步驟,總算具備通過電腦在手機上安裝App的條件了。啟動Android Studio,在頂部中央的執(zhí)行區(qū)域看到已連接的手機信息,單擊手機名稱右邊的三角運行按鈕,等待Android Studio往手機上安裝App
- 使用數(shù)據(jù)線把手機連到電腦上
- 如果是初學(xué)階段,可以先使用模擬器,等后期在使用真機測試
1.2 App開發(fā)語言
- 基于安卓系統(tǒng)的App開發(fā)主要有兩大技術(shù)路線,分別是原生開發(fā)和混合開發(fā)。
- 原生開發(fā)指的是在移動平臺上利用官方提供的編程語言(例如Java、Kotlin等)、開發(fā)工具包(SDK)、開發(fā)環(huán)境(Android Studio)進行App開發(fā);
- 混合開發(fā)指的是結(jié)合原生與H5技術(shù)開發(fā)混合應(yīng)用,也就是將部分App頁面改成內(nèi)嵌的網(wǎng)頁,這樣無須升級App、只要覆蓋服務(wù)器上的網(wǎng)頁,即可動態(tài)更新App頁面。
- 在創(chuàng)建新項目時,彈出的項目配置對話框,Language欄進行選擇
1.3 java語言開發(fā)
- Java是Android開發(fā)的主要編程語言
- 雖然Android開發(fā)需要Java環(huán)境,但沒要求電腦上必須事先安裝JDK,因為Android Studio已經(jīng)自帶了JRE
- 依次選擇菜單File→Project Structure,彈出項目結(jié)構(gòu)對話框
1.4 Kotlin語言開發(fā)
- Kotlin是谷歌官方力推的又一種編程語言,它與Java同樣基于JVM(Java Virtual Machine,即Java虛擬機),且完全兼容Java語言。創(chuàng)建新項目時,在Language欄下拉可選擇Kotlin
1.5 XML
- XML全稱為
Extensible Markup Language
,即可擴展標記語言. - XML并非編程語言,只是一種標記語言。它類似于HTML,利用各種標簽表達頁面元素,以及各元素之間的層級關(guān)系及其排列組合。每個XML標簽都是獨立的控件對象,標簽內(nèi)部的屬性以“android:”打頭,表示這是標準的安卓屬性,各屬性分別代表控件的某種規(guī)格。
<TextViewandroid:id="@+id/tv"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="Hello World!" />
- id:控件的編號。
- layout_width:控件的布局寬度,wrap_content表示剛好包住該控件的內(nèi)容。
- layout_height:控件的布局高度,wrap_content表示剛好包住該控件的內(nèi)容。
- text:控件的文本
1.6 App連接的數(shù)據(jù)庫
- Android內(nèi)置了專門的數(shù)據(jù)庫名為SQLite,它遵循關(guān)系數(shù)據(jù)庫的設(shè)計理念,SQL語法類似于MySQL。
- SQLite無須單獨安裝,因為它內(nèi)嵌到應(yīng)用進程當(dāng)中,所以App無須配置連接信息,即可直接對其增刪改查。由于SQLite嵌入到應(yīng)用程序,省去了配置數(shù)據(jù)庫服務(wù)器的開銷,因此它又被歸類為嵌入式數(shù)據(jù)庫。
- 手機端的App,連同程序代碼及其內(nèi)置的嵌入式數(shù)據(jù)庫,其實是個又獨立又完整的程序?qū)嶓w,它只負責(zé)手機上的用戶交互與信息處理,該實體被稱作客戶端。
- 后端的Java Web服務(wù),包括Web代碼和數(shù)據(jù)庫服務(wù)器,同樣構(gòu)成另一個單獨運行的程序?qū)嶓w,它只負責(zé)后臺的業(yè)務(wù)邏輯與數(shù)據(jù)庫操作,該實體被稱作服務(wù)端。
- 客戶端與服務(wù)端之前通過HTTP接口通信,每當(dāng)客戶端覺得需要把信息發(fā)給服務(wù)端,或者需要從服務(wù)端獲取信息時,客戶端便向服務(wù)端發(fā)起HTTP請求,服務(wù)端收到客戶端的請求之后,根據(jù)規(guī)則完成數(shù)據(jù)處理,并將處理結(jié)果返回給客戶端。這樣客戶端經(jīng)由HTTP接口并借服務(wù)端之手,方能間接讀寫后端的數(shù)據(jù)庫服務(wù)器。
- 一個具備用戶管理功能的App系統(tǒng),實際上并不單單只是手機上的一個應(yīng)用,還包括與其對應(yīng)的Java Web服務(wù)。手機里的客戶端App,面向的是手機用戶,App與用戶之間通過手機屏幕交互;而后端的服務(wù)程序,面向的是手機App,客戶端與服務(wù)端之間通過HTTP接口交互。
二 App的工程結(jié)構(gòu)
2.1 App工程目錄結(jié)構(gòu)
- App工程分為兩個層次
- 第一個層次是項目,依次選擇菜單
File→New→New Project
即可創(chuàng)建新項目。 - 另一個層次是模塊,模塊依附于項目,每個項目至少有一個模塊,也能擁有多個模塊,依次選擇菜單
File→New→New Module
即可在當(dāng)前項目創(chuàng)建新模塊。
- 第一個層次是項目,依次選擇菜單
- 一般所言的“編譯運行App”,指的是運行某個模塊,而非運行某個項目,因為模塊才對應(yīng)實際的App。
-
項目下面有兩個分類:一個是app(代表app模塊);另一個是Gradle Scripts
-
app下面有3個子目錄加粗樣式,其功能說明如下:
- manifests子目錄:只有一個XML文件,即
AndroidManifest.xml
——App的運行配置文件。 - java子目錄:有3個
com.xxx.myapp
包,其中第一個包存放當(dāng)前模塊的Java源代碼,后面兩個包存放測試用的Java代碼。 - res子目錄:存放當(dāng)前模塊的資源文件。該目錄同時又有4個子目錄:
- drawable目錄:存放圖形描述文件與圖片文件。
- layout目錄:存放App頁面的布局文件。
- mipmap目錄:存放App的啟動圖標。
- values目錄:存放一些常量定義文件。例如:字符串常量strings.xml、像素常量dimens.xml、顏色常量colors.xml、樣式風(fēng)格定義styles.xml等
- xml:可在運行時通過調(diào)用 Resources.getXML() 讀取的任意 XML 文件。各種 XML 配置文件(如可搜索配置)都必須保存在此處。
- manifests子目錄:只有一個XML文件,即
-
Gradle Scripts下面主要是工程的編譯配置文件,主要有:
文件名稱 | 說明 |
---|---|
build.gradle | 該文件分為項目級與模塊級兩種,用于描述App工程的編譯規(guī)則。 |
proguard-rules.pro | 用于描述Java代碼的混淆規(guī)則。 |
gradle.properties | 用于配置編譯工程的命令行參數(shù),一般無須改動。 |
settings.gradle | 配置需要編譯的模塊。初始內(nèi)容為include ':app' ,表示只編譯app模塊。 |
local.properties | 項目的本地配置文件,它在工程編譯時自動生成,用于描述開發(fā)者電腦的環(huán)境配置,包括SDK的本地路徑、NDK的本地路徑等。 |
- 這里所說的混淆規(guī)則是apk的安全保護措施,在打包時,將相關(guān)的代碼內(nèi)容進行替換,以起到混淆窺探者,保護程序的版權(quán)
2.2 構(gòu)建工具Grade
- Gradle 是一個項目自動化構(gòu)建工具,幫我們做了依賴、打包、部署、發(fā)布、各種渠道的差異管理等工作
2.3 編譯配置文件build.gradle
- 新創(chuàng)建的App項目默認有兩個
build.gradle
,一個是Project項目級別的build.gradle
;另一個是Module
模塊級別的build.gradle
- 項目級別的build.gradle指定了當(dāng)前項目的總體編譯規(guī)則
//全局配置文件中定義版本號,然后在模塊級別的配置文件進行配置
plugins {id 'com.android.application' version '7.4.1' apply falseid 'com.android.library' version '7.4.1' apply false
}
- 補充內(nèi)容:
buildscript {repositories {// 以下四行添加阿里云的倉庫地址,方便國內(nèi)開發(fā)者下載相關(guān)插件maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'https://maven.aliyun.com/repository/google'}maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}maven { url 'https://maven.aliyun.com/repository/public'}google()jcenter()}dependencies {// 配置gradle插件版本,下面的版本號就是Android Studio的版本號classpath 'com.android.tools.build:gradle:4.1.0'}
}
- 在該文件中可添加
buildscript
的repositories
和dependencies
兩個節(jié)點,其中repositories節(jié)點用于設(shè)置Android Studio插件的網(wǎng)絡(luò)倉庫地址,而dependencies節(jié)點用于設(shè)置gradle插件的版本號。
- 由于官方的谷歌倉庫位于國外,下載速度相對較慢,因此可在repositories節(jié)點添加阿里云的倉庫地址,方便國內(nèi)開發(fā)者下載相關(guān)插件。
- 模塊級別的build.gradle對應(yīng)于具體模塊,每個模塊都有自己的build.gradle,它指定了當(dāng)前模塊的詳細編譯規(guī)則
plugins {id 'com.android.application'
}android {//配置命名空間namespace 'com.yang.myfirstapplication'// 指定編譯用的SDK版本號。比如33表示使用Android 13編譯compileSdk 33//指定編譯工具的版本號。// 頭兩位數(shù)字必須與compileSdkVersion保持一致,具體的版本號可在sdk安裝目錄的“sdk\build-tools”下找到buildToolsVersion '30.0.3'defaultConfig {// 指定該模塊的應(yīng)用編號,也就是App的包名applicationId "com.yang.myfirstapplication"//指定App適合運行的最小SDK版本號,如21 表示至少要在Android 5.0上運行minSdk 21//指定目標設(shè)備的SDK版本號?!続pp最希望在該版本的Android上運行】targetSdk 33//指定App的應(yīng)用版本號versionCode 1//指定App的應(yīng)用版本名稱versionName "1.0"//單元測試類testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled false//指定混淆文件proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}}
// 指定App編譯的依賴信息
dependencies {//版本兼容庫implementation 'androidx.appcompat:appcompat:1.4.1'//網(wǎng)絡(luò)依賴庫,在構(gòu)建項目時,grade自動去網(wǎng)絡(luò)上下載相應(yīng)的依賴文件implementation 'com.google.android.material:material:1.5.0'implementation 'androidx.constraintlayout:constraintlayout:2.1.3'// 指定單元測試編譯用的junit版本號testImplementation 'junit:junit:4.13.2'androidTestImplementation 'androidx.test.ext:junit:1.1.3'androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
- Gradle工具的版本配置在gradle\wrapper\gradle-wrapper.properties,也可以依次選擇菜單
File→Project Structure→Project
,在彈出的設(shè)置頁面中修改Gradle Version
- 注意:每個版本的Android Studio都有對應(yīng)的Gradle版本,只有二者的版本正確對應(yīng),App工程才能成功編譯
- 具體的版本匹配信息參看官網(wǎng)內(nèi)容
2.4 運行配置文件AndroidManifest.xml
- AndroidManifest.xml指定了App的運行配置信息,它是一個XML描述文件
- 位置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><!--allowBackup:應(yīng)用備份dataExtractionRules:備份和轉(zhuǎn)移配置fullBackupContent:自動備份配置icon:應(yīng)用圖標label:應(yīng)用名稱supportsRtl: 阿拉伯語的支持theme: 應(yīng)用顯示風(fēng)格targetApi: 目標Android版本--><applicationandroid:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/Theme.MyFirstApplication"tools:targetApi="31"><!-- activity節(jié)點指定了該App擁有的活動頁面信息,其中擁有android.intent.action.MAIN的activity說明它是入口頁面--><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".MainActivity2"></activity></application></manifest>
- AndroidManifest.xml的根節(jié)點為manifest,它的package屬性指定了該App的包名
2.4.1 application
- manifest的application節(jié)點的各屬性簡介:
屬性名 | 說明 |
---|---|
android:allowBackup | 應(yīng)用備份開關(guān)?!総rue表示允許,false則表示不允許。】允許用戶備份系統(tǒng)應(yīng)用和第三方應(yīng)用的apk安裝包和應(yīng)用數(shù)據(jù),以便在刷機或者數(shù)據(jù)丟失后恢復(fù)應(yīng)用,用戶即可通過adb backup和adb restore來進行對應(yīng)用數(shù)據(jù)的備份和恢復(fù)。 |
android:icon | 指定App在手機屏幕上顯示的圖標。 |
android:label | 指定App在手機屏幕上顯示的名稱。 |
android:roundIcon | 指定App的圓角圖標。 |
android:supportsRtl | 是否支持阿拉伯語/波斯語這種從右往左的文字排列順序。為true表示支持,為false則表示不支持。 |
android:theme | 指定App的顯示風(fēng)格 |
- application屬性的官方文檔
2.4.2 activity
- Activity 是一個應(yīng)用程序組件,提供一個屏幕,用戶可以用來交互為了完成某項任務(wù)
application
下的activity節(jié)點,它是活動頁面的注冊聲明,只有在AndroidManifest.xml
中正確配置了activity
節(jié)點,才能在運行時訪問對應(yīng)的活動頁面。初始配置的MainActivity
正是App
的默認主頁。<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
- 完整的活動頁面注冊標簽
<!--活動頁面的注冊聲名--><activityandroid:name=".MainActivity"android:exported="true"><!--如果有多個activity進行如下的intent-filter配置,桌面會出現(xiàn)兩個app圖標--><intent-filter><!--action:配置入口頁面--><action android:name="android.intent.action.MAIN" /><!--category:配置屏幕是否顯示圖標--><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".MainActivity2"></activity> </application>
三 App的設(shè)計規(guī)范
- App工程的源碼設(shè)計規(guī)范:App將看得見的界面設(shè)計與看不見的代碼邏輯區(qū)分開,然后利用XML標記描繪應(yīng)用界面,同時使用Java代碼書寫程序邏輯,從而形成App前后端分離的設(shè)計規(guī)約,有利于提高App集成的靈活性。
3.1 界面設(shè)計與代碼邏輯
- 類似與Web網(wǎng)站前后端分離的模式,App也采用了前后端分離設(shè)計
- App前后端分離的優(yōu)勢
- 使用XML文件描述App界面,方便及時預(yù)覽界面效果
- 提高界面布局的復(fù)用率,如:一個頁面布局可以被多處代碼復(fù)用
- 提高后臺邏輯代碼的利用率,如:不同的頁面布局可以使用同一段java代碼來實現(xiàn)相同的邏輯處理
3.2 完整的頁面創(chuàng)建過程包括三個步驟:
- 在 layout 目錄下創(chuàng)建 XML 文件
- 創(chuàng)建與 XML 文件對應(yīng)的 Java 代碼
- 在 AndroidManifest.xml 中注冊頁面配
3.3 XML標記描繪應(yīng)用界面
<?xml version="1.0" encoding="utf-8"?>
<!-- 線性布局, match_parent意思是與上級視圖保持一致-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><!-- 文本視圖,名字叫做tv,顯示的文字內(nèi)容為“Hello World!” --><!--android:id="@+id/tv",表示給該文本視圖起名字編號--><TextViewandroid:id="@+id/tv"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="Hello World!" />
</LinearLayout>
- 上面的XML內(nèi)容,外層的LinearLayout標簽為該界面的根節(jié)點,內(nèi)層的TextView為控件節(jié)點。由于根節(jié)點和布局節(jié)點都存在下級節(jié)點,因此它們要有配對的標簽頭與標簽尾,才能將下級節(jié)點包裹起來。
- 根節(jié)點其實是特殊的布局節(jié)點,它的標簽名稱可以跟布局節(jié)點一樣,區(qū)別之處在于下列兩點:
- 每個界面只有一個根節(jié)點,卻可能有多個布局節(jié)點,也可能沒有中間的布局節(jié)點,此時所有控件節(jié)點都掛在根節(jié)點下面。
- 根節(jié)點必須配備
xmlns:android="http://schemas.android.com/apk/res/android"
,表示指定XML內(nèi)部的命名空間,有了這個命名空間,Android Studio會自動檢查各節(jié)點的屬性名稱是否合法
3.4 Java代碼書寫程序邏輯
- 復(fù)雜的業(yè)務(wù)邏輯由后臺的代碼實現(xiàn),
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}
- 注意:onCreate內(nèi)部的setContentView方法直接引用了布局文件的名字activity_main,該方法的意思是往當(dāng)前活動界面填充activity_main.xml的布局內(nèi)容。
- 在MainActivity中修改文本內(nèi)容
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//當(dāng)前的頁面布局采用的是res/layout/activity_main.xmlsetContentView(R.layout.activity_main);//獲取名叫tv的TextView控件,注意添加導(dǎo)包語句importandroid.widget.TextView;TextView tv = findViewById(R.id.tv);//設(shè)置TextView控件的文字內(nèi)容tv.setText("你好 Android!");}
}
3.5 App的活動頁面
- App活動頁面的基本操作,首先手把手地分三步創(chuàng)建新的App頁面,接著通過活動創(chuàng)建菜單快速生成頁面源碼,然后說明了如何在代碼中跳到新的活動頁面
3.5.1 創(chuàng)建新的App頁面
- 若要增加新的頁面,,完整的頁面創(chuàng)建過程包括3個步驟:創(chuàng)建XML文件、創(chuàng)建Java代碼、注冊頁面配置
- 創(chuàng)建XML文件
- 在Android Studio左上方找到項目結(jié)構(gòu)圖,右擊res目錄下面的layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/text"/></LinearLayout>
- 在Android Studio左上方找到項目結(jié)構(gòu)圖,右擊res目錄下面的layout
- 創(chuàng)建Java代碼
import android.os.Bundle; import android.view.Menu;import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity;public class MainActivity2 extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);//加載來自activity_main3的頁面布局setContentView(R.layout.activity_main3);} }
- 注冊頁面配置
- 在項目中注冊該頁面,打開AndroidManifest.xml,在application節(jié)點內(nèi)進行配置:
<activity android:name="MainActivity2" />
3.5.2 快速生成頁面源碼
- Android Studio早已集成快速創(chuàng)建頁面的功能,只要一個對話框就能完成所有操作?!緞?chuàng)建XML文件、創(chuàng)建Java代碼、注冊頁面配置】
- 右擊java目錄下面的包名,右鍵菜單中依次選擇New→Activity→Empty Activity
3.5.3 跳轉(zhuǎn)頁面的實現(xiàn)
- 一旦創(chuàng)建好新頁面,就得在合適的時候跳到該頁面,假設(shè)出發(fā)頁面為A,到達頁面為B,那么跳轉(zhuǎn)動作是從A跳到B。由于啟動App會自動打開默認主頁MainActivity,因此跳躍在MainActivity,跳躍的終點則為目標頁面的Activity。這種跳轉(zhuǎn)動作翻譯為Android代碼,格式形如
"startActivity(newIntent(源頁面.this, 目標頁面.class));"
。如果目標頁面名為MainActivity2,跳轉(zhuǎn)代碼如下:
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView tv = findViewById(R.id.tv);tv.setText("你好 Android!");Button button = findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//Intent intent = new Intent();//intent.setClass(MainActivity.this,MainActivity2.class);//startActivity(intent);startActivity(new Intent(MainActivity.this,MainActivity2.class));}});}
}