目錄
前言
一? activity介紹
二? activity的缺點
三? 自定義activity的步驟
四 自定義activity的demo
前言
小伙伴們,在前面的文章中,我們談到了Android開發(fā)中的自定義view的基本概念及方法等,本文我們實際舉例自定義一個activity。
一? activity介紹
Activity(活動)是Android應(yīng)用程序中的核心組件之一,它代表了應(yīng)用程序界面的一個單獨屏幕或用戶交互界面。每個Activity都具有自己的布局和功能,并且可以通過與其他Activity進行交互來構(gòu)建復(fù)雜的應(yīng)用程序。
二? activity的缺點
-
內(nèi)存消耗:每個Activity都需要分配內(nèi)存來維護其狀態(tài)和UI層級結(jié)構(gòu)。在應(yīng)用程序中使用大量的Activity可能會導(dǎo)致內(nèi)存消耗較高,可能會影響應(yīng)用程序的性能和響應(yīng)速度。
-
生命周期管理復(fù)雜:Activity具有多個生命周期方法(如onCreate()、onStart()、onResume()等),需要開發(fā)者正確管理這些方法的調(diào)用和處理應(yīng)用程序狀態(tài)轉(zhuǎn)換。如果管理不當(dāng),可能會導(dǎo)致內(nèi)存泄漏或錯誤的用戶體驗。
-
跨界面通信困難:當(dāng)需要在不同的Activity之間進行數(shù)據(jù)傳遞或通信時,需要使用Intent、Bundle或其他機制來實現(xiàn)。這種跨界面通信的設(shè)計復(fù)雜性可能增加代碼的復(fù)雜性和維護成本。
-
UI切換延遲:當(dāng)用戶從一個Activity切換到另一個Activity時,可能會出現(xiàn)短暫的延遲。這是因為系統(tǒng)需要銷毀前一個Activity并創(chuàng)建新的Activity實例,以及執(zhí)行布局和渲染操作。
-
設(shè)備配置變化處理:當(dāng)設(shè)備配置發(fā)生變化(如旋轉(zhuǎn)屏幕、改變語言環(huán)境等)時,Activity默認(rèn)會被銷毀并重新創(chuàng)建。這可能導(dǎo)致應(yīng)用程序的數(shù)據(jù)丟失或重置,需要開發(fā)者實現(xiàn)特定的處理邏輯來保存和恢復(fù)數(shù)據(jù)。
-
單一任務(wù)限制:每個Activity通常對應(yīng)一個界面和一個任務(wù)。這意味著在同一時間只能顯示一個Activity,而無法同時顯示多個Activity的部分內(nèi)容。在某些情況下,這可能限制了用戶體驗和交互的靈活性。
三? 自定義activity的步驟
-
創(chuàng)建一個新的Java類:在Android項目中,創(chuàng)建一個新的Java類來定義您的自定義Activity。這個類應(yīng)該繼承自
android.app.Activity
類或其子類。 -
定義Activity布局:創(chuàng)建一個XML布局文件來定義Activity的界面布局。您可以使用各種UI元素(如TextView、Button等)和布局容器(如LinearLayout、RelativeLayout等)來構(gòu)建界面。
-
關(guān)聯(lián)布局和Activity:在Activity的
onCreate()
方法中,通過調(diào)用setContentView()
方法將XML布局文件與Activity關(guān)聯(lián)起來。這樣,系統(tǒng)將根據(jù)布局定義呈現(xiàn)用戶界面。 -
實現(xiàn)生命周期方法:在自定義Activity類中,根據(jù)需要實現(xiàn)生命周期方法以管理Activity的狀態(tài)轉(zhuǎn)換和用戶交互。常見的生命周期方法包括
onCreate()
、onStart()
、onResume()
、onPause()
、onStop()
和onDestroy()
等。 -
處理用戶交互:通過重寫適當(dāng)?shù)姆椒ǎɡ?code>onClickListener()等)來處理用戶對界面元素的交互操作,并執(zhí)行相應(yīng)的邏輯響應(yīng)。
-
啟動Activity:您可以使用Intent在其他Activity或組件中啟動自定義Activity。通過指定目標(biāo)Activity的class和必要的附加數(shù)據(jù),然后通過調(diào)用
startActivity()
或相關(guān)的方法來啟動Activity。 -
添加其他功能:根據(jù)需要,您可以在自定義Activity中添加其他功能,如數(shù)據(jù)處理、網(wǎng)絡(luò)請求、數(shù)據(jù)庫訪問等。這些功能可根據(jù)您的應(yīng)用需求和業(yè)務(wù)邏輯進行定制。
-
聲明Activity:在AndroidManifest.xml文件中聲明自定義Activity,以便系統(tǒng)能夠識別和管理它。確保使用
<activity>
元素來指定Activity類的名稱和其他屬性。
四 自定義activity的demo
以下是一個簡單的自定義Activity案例,展示了如何創(chuàng)建一個包含按鈕點擊事件處理和界面跳轉(zhuǎn)的自定義Activity。
- 創(chuàng)建一個新的Java類:
public class CustomActivity extends AppCompatActivity { // 在這里添加您的代碼 }
- 定義Activity布局: 在res/layout文件夾下創(chuàng)建一個名為
activity_custom.xml
的XML布局文件,并添加以下內(nèi)容:<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"> <Button android:id="@+id/btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="點擊開始" android:onClick="startButtonClick" /> </LinearLayout>
- 關(guān)聯(lián)布局和Activity: 在CustomActivity類的
onCreate()
方法中,通過調(diào)用setContentView()
方法將XML布局文件與Activity關(guān)聯(lián)起來:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom); }
- 實現(xiàn)按鈕點擊事件處理: 在CustomActivity類中添加一個名為
startButtonClick()
的方法,用于處理按鈕點擊事件。例如,在按鈕點擊時啟動另一個Activity:public void startButtonClick(View view) { Intent intent = new Intent(this, AnotherActivity.class); startActivity(intent); }
-
添加其他功能: 根據(jù)需要,可以在CustomActivity類中添加其他功能,例如處理數(shù)據(jù)、網(wǎng)絡(luò)請求等。文章來源:http://www.zghlxwxcb.cn/news/detail-556467.html
-
聲明Activity: 在AndroidManifest.xml文件的
<application>
標(biāo)簽內(nèi),添加以下代碼來聲明CustomActivity:文章來源地址http://www.zghlxwxcb.cn/news/detail-556467.html<activity android:name=".CustomActivity" />
到了這里,關(guān)于【Android從零單排系列四十八】《Android中自定義activity的實現(xiàn)方法》的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!