Android Activity綜述

      網(wǎng)友投稿 870 2025-03-31

      用戶看得見摸的著的是手機(jī)屏幕。我們要在手機(jī)屏幕上顯示文字圖像等信息,并對用戶的點(diǎn)擊滑動(dòng)等等操作作出不同的反應(yīng)。

      App中與用戶交互的大任由Activity來承擔(dān)。當(dāng)用戶手指點(diǎn)擊手機(jī)屏幕時(shí),Android系統(tǒng)檢測到屏幕發(fā)生的事情,將這一事件分發(fā)對應(yīng)的App處理。

      這里要注意,activity接收到的是系統(tǒng)給的信息。系統(tǒng)會(huì)判斷這些交互消息該給哪個(gè)app來處理。

      或者換個(gè)說法

      Activity 是一個(gè)應(yīng)用組件,用戶可與其提供的屏幕進(jìn)行交互,以執(zhí)行撥打電話、拍攝照片、發(fā)送電子郵件或查看地圖等操作。

      每個(gè) Activity 都會(huì)獲得一個(gè)用于繪制其用戶界面的窗口。窗口通常會(huì)充滿屏幕,但也可小于屏幕并浮動(dòng)在其他窗口之上。

      Activity怎么用

      我們新建的工程中帶有一個(gè)基礎(chǔ)activity。把它改改就能用。

      新建工程中,需要注意3個(gè)文件。

      MainActivity.java 在src/main/java里,對應(yīng)的包名目錄下。

      activity_main.xml 在res/layout里。

      AndroidManifest.xml 在src/main里。這里叫做“清單文件”。下文會(huì)介紹。

      這3個(gè)文件分布在不同的地方。簡單來說,java文件可以控制界面邏輯。

      layout文件(這里指的是activity_main.xml)預(yù)設(shè)了UI如何擺放。

      清單文件告訴系統(tǒng),我這個(gè)app有哪些組件,申請了什么權(quán)限。

      layout - 界面布局

      新建的layout中,as一般會(huì)默認(rèn)給一個(gè)ConstraintLayout。比如activity_main.xml。

      這里為了用起來方便,我們把它換成LinearLayout。

      有的朋友會(huì)問,都2021年了,為什么不直接用ConstraintLayout?

      現(xiàn)在不做什么功能,先用LinearLayout,就是為了方便。

      換成LinearLayout后,layout文件長這樣。

      可以看到,標(biāo)簽的開頭和結(jié)尾都換成了LinearLayout。其他地方暫時(shí)不修改。

      as功能強(qiáng)大,非常便利。我們可以用鼠標(biāo)選中標(biāo)簽開始的androidx...Layout,然后直接鍵盤輸入LinearLayout的前幾位字母。

      as會(huì)自動(dòng)彈出選擇框,在里面雙擊選擇LinearLayout或者回車選擇,標(biāo)簽就替換完成了。

      Java - 控制界面

      layout文件設(shè)計(jì)的是界面的初始布局。它決定了初始界面上放著什么UI組件以及組件是怎么組織安排的。

      這里我們說的是「初始界面」或者「初始布局」。也就是說,我們可以控制界面上的UI元素。

      先看默認(rèn)的MainActivity.java。在onCreate方法里,R.layout.activity_main指的就是activity_main.xml。

      現(xiàn)在layout中有一個(gè)TextView,它可以用來顯示文字。我們想在MainActivity中控制它,該怎么做呢?

      現(xiàn)在改一下這個(gè)TextView。刪掉原來ConstraintLayout用到的那些屬性。

      給它添加一個(gè)id。這個(gè)id在這個(gè)layout文件中必須是獨(dú)一無二的。給它分配一個(gè)id叫做tv1,就像下面。

      現(xiàn)在TextView有了「身份證」,我們在activity中就可以找到它。用的是findViewById方法。

      Android Activity綜述

      TextView tv1 = findViewById(R.id.tv1);

      現(xiàn)在我們就拿到了界面上的這個(gè)TextView對象??梢詫λM(jìn)行操作了。

      比如改變它顯示的文字。

      TextView tv1 = findViewById(R.id.tv1); // 拿到textView的對象 tv1.setText("Today is a good day."); // 改變文字

      AndroidManifest.xml - 清單文件

      也可以簡稱為「manifest文件」。清單文件非常重要,它告訴系統(tǒng)我們的app有哪些activity,用到了什么權(quán)限等等信息。

      如果要新建activity,需要在清單中注冊。

      從這個(gè)默認(rèn)的清單文件中我們可以得知,activity是屬于application的。application就是我們的應(yīng)用。

      application標(biāo)簽中也指定了各種元素,例如應(yīng)用的圖標(biāo),名字,主題等等。

      MainActivity是應(yīng)用啟動(dòng)的第一個(gè)activity??梢杂^察到它設(shè)置了action和category屬性。

      android.intent.action.MAIN決定應(yīng)用程序最先啟動(dòng)的Activity。

      android.intent.category.LAUNCHER 表示可以在手機(jī)“桌面”上看到應(yīng)用圖標(biāo)。

      設(shè)置了這2個(gè)標(biāo)簽,決定了這個(gè)activity是用戶點(diǎn)擊應(yīng)用圖標(biāo)時(shí)「第一個(gè)啟動(dòng)的界面」。

      activity總覽小結(jié)

      至此,我們知道了一個(gè)activity通常需要一個(gè)java文件,一個(gè)layout文件,并且要在清單中注冊。

      與網(wǎng)頁開發(fā)類比的話,layout文件就像html,Java和js有類似的作用。style(樣式)可以起到css的作用。

      activity是應(yīng)用重要的組件之一。紛繁復(fù)雜的內(nèi)容需要activity來承載。

      之后我們會(huì)在activity中控制各種各樣的UI組件,處理用戶的操作,申請權(quán)限等等。還要了解activity的生命周期,啟動(dòng)方式和跳轉(zhuǎn)方法。

      代碼請參考 Tutorial2020

      Android Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:自動(dòng)化庫存進(jìn)銷存表,讓管理更高效
      下一篇:通過文件菜單新建和通過工具欄按鈕新建演示稿有何區(qū)別
      相關(guān)文章
      国产亚洲?V无码?V男人的天堂| 久久精品国产精品亚洲下载 | 亚洲成人一区二区| 亚洲精品在线网站| 亚洲中文字幕日本无线码| 亚洲gv白嫩小受在线观看| 亚洲免费在线播放| 亚洲GV天堂GV无码男同| 亚洲国产综合精品中文字幕| 久久亚洲精品无码AV红樱桃| 久久久亚洲精华液精华液精华液| 久久九九亚洲精品| 色老板亚洲视频免在线观| 亚洲国产精品一区二区九九| 国产亚洲?V无码?V男人的天堂 | 亚洲精品福利视频| 久久精品国产亚洲77777| 国产国拍亚洲精品mv在线观看| 亚洲一区二区三区偷拍女厕 | 亚洲av午夜电影在线观看| 自拍偷自拍亚洲精品第1页| 伊人久久亚洲综合| 久久伊人亚洲AV无码网站| 国产成人久久精品亚洲小说| 亚洲乱码卡一卡二卡三| 亚洲综合精品一二三区在线| 亚洲成a人片在线观看天堂无码| 亚洲短视频男人的影院| 一本色道久久88亚洲精品综合 | 国产精品亚洲综合网站| 久久久久亚洲AV无码专区首| 亚洲伊人色欲综合网| 亚洲熟妇成人精品一区| 亚洲一级免费毛片| 午夜亚洲国产理论秋霞| 亚洲成AV人片久久| 亚洲人成在线播放| 亚洲色无码专区一区| 亚洲国产精品无码久久久秋霞1| 在线观看亚洲AV每日更新无码| 亚洲色大网站WWW永久网站|