




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Android四大組件之Activity詳細(xì)介紹目錄理論概述Activity的理解Activity的定義Activity的作用類比Activity與ServletIntent的理解Intent的分類Intent的使用IntentFilter的理解相關(guān)的API設(shè)置點(diǎn)擊監(jiān)聽Activity中添加監(jiān)聽layout中添加監(jiān)聽設(shè)置長按監(jiān)聽Activity的開發(fā)開發(fā)流程Activity的使用
總結(jié)
理論概述
Activity的理解
Activity的定義
Activity,字面翻譯為活動(dòng),他是Android定義的四大應(yīng)用組件之一,也是最重要的用的最多的。
一個(gè)應(yīng)用有多個(gè)界面,也就是包含多個(gè)Activity
Activity的作用
用來提供一個(gè)能夠讓用戶操作并與之交互的界面
一個(gè)Activity相當(dāng)于一個(gè)容器,用于存放各種控件的容器,也可以理解為是與用戶交互的接口
類比Activity與Servlet
Intent的理解
Intent,直譯為意圖,也就是你想要做什么或者想要去哪
Intent(Activity,Service,BroadcastReceiver三個(gè)組件間通信的信使),但不是Android中的四大組件之一。
例如:我要在Activity中啟動(dòng)另外一個(gè)Activity,就必須使用Intent對象。Intent對象還可以攜帶數(shù)據(jù)
Intent的分類
顯式:明確指定的目標(biāo)組件的意圖(也就是說很明確知道要做什么去或者去哪里),當(dāng)操作當(dāng)前應(yīng)用自己的組件的時(shí)候使用顯式Intent
隱式:沒有明確指定目標(biāo)組件的意圖(也就是說不明確知道要做什么去或者去哪里),操作其它應(yīng)用自己的組件的時(shí)候使用隱式Intent
Intent的使用
創(chuàng)建
顯式:Intent(Contextcontext,ClassactivityClass),使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對象就是顯式的
隱式:Intent(Stringaction)//與Activity與的action匹配,使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對象就是隱式的,例如分享功能,也是啟動(dòng)另外一個(gè)Activity,但是到底啟動(dòng)哪個(gè)Activity,還不知道,由用戶選擇
攜帶數(shù)據(jù)
額外:putExtra(Stringkey,Xxxvalue)內(nèi)部用map容器保存
有特定前綴:setData(Uridata)//tel:123123,smsto:123123
讀取數(shù)據(jù)
額外:XxxgetXxxExtra(Stringkey)
有特定前綴:UrigetData()
IntentFilter的理解
在配置Activity時(shí),可以為Activity指定一個(gè)IntentFilter的配置
如果你的Activity希望其他應(yīng)用能訪問到,需要配置intent-filter
如果這個(gè)Activity是被內(nèi)部應(yīng)用的某個(gè)Activity來訪問的,就不需要配置intent-filter
如果想啟動(dòng)其他應(yīng)用界面你必須用隱式的intent,且目標(biāo)界面Activity配置了intent-filter
相關(guān)的API
設(shè)置點(diǎn)擊監(jiān)聽
Activity中添加監(jiān)聽
view.setOnClickListener(OnClickListenerlistener);
layout中添加監(jiān)聽
layout中
Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:android:text="帶回調(diào)啟動(dòng)"/
Activity中
packagecom.example.activity_01;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
publicvoidMainStart2(Viewview){
Toast.makeText(this,"帶回調(diào)啟動(dòng)",Toast.LENGTH_SHORT).show();
}
設(shè)置長按監(jiān)聽
view.setOnLongClickListener(OnLongClickListenerlistener);
Activity的開發(fā)
開發(fā)流程
1.界面布局
2.實(shí)現(xiàn)Activity的功能
1).定義所有需要操作的視圖對象并初始化
2).給視圖設(shè)置監(jiān)聽
3).在回調(diào)方法中實(shí)現(xiàn)邏輯
3.實(shí)現(xiàn)一般啟動(dòng)
1).定義好界面二
1).布局
2).定義Activity類
3).配置
4).重寫onCreate(),并加載布局
2).啟動(dòng)界面二
1).創(chuàng)建Intent對象(顯式)
2).通過intent攜帶額外數(shù)據(jù)
3).啟動(dòng)Activity
4).得到intent對象
5).通過intent讀取額外數(shù)據(jù)
6).顯示到EditText
4.實(shí)現(xiàn)一般返回:
1).在顯示Second界面時(shí),Main界面其實(shí)在,只是被蓋住了
2).關(guān)閉當(dāng)前界面:finish()
Activity的使用
界面布局
實(shí)現(xiàn)Activity的功能
1).定義所有需要操作的視圖對象并初始化
2).給視圖設(shè)置監(jiān)聽
3).在回調(diào)方法中實(shí)現(xiàn)邏輯
packagecom.example.activity;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Toast;
importcom.google.android.material.textfield.TextInputEditText;
publicclassMainActivityextendsActivityimplementsView.OnClickListener{
privateTextInputEditTextmain_message;
privateButtonbtn_main_start1;
privateButtonbtn_main_start2;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//視圖對象并初始化
main_message=findViewById(R.id.et_main_message);
btn_main_start1=findViewById(R.id.btn_main_start1);
btn_main_start2=findViewById(R.id.btn_main_start2);
//給視圖設(shè)置監(jiān)聽
btn_main_start1.setOnClickListener(this);
btn_main_start2.setOnClickListener(this);
//在回調(diào)方法中實(shí)現(xiàn)邏輯
@Override
publicvoidonClick(Viewview){//view就是發(fā)生(操作的)事件的視圖對象
if(view==btn_main_start1){
Toast.makeText(this,"一般啟動(dòng)",Toast.LENGTH_SHORT).show();
}elseif(view==btn_main_start2){
Toast.makeText(this,"帶回調(diào)啟動(dòng)",Toast.LENGTH_SHORT).show();
}
實(shí)現(xiàn)一般啟動(dòng)
1).定義好界面二
1).布局
2).定義Activity類
3).配置
4).重寫onCreate(),并加載布局
2).啟動(dòng)界面二
1).創(chuàng)建Intent對象(顯式)
2).通過intent攜帶額外數(shù)據(jù)
3).啟動(dòng)Activity
4).得到intent對象
5).通過intent讀取額外數(shù)據(jù)
6).顯示到TextInputEditText
配置清單
xmlversion="1.0"encoding="utf-8"
manifestxmlns:android="/apk/res/android"
package="com.example.activity_01"
application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Activity_01"
android:name:配置全類名,com.example.activity_01.SecondActivity,可以將包名省略
android:label:定義一個(gè)Activity的標(biāo)題,可以引用一個(gè)字符串(必須在string.xml中有定義),也可以直接寫字符串,但不建議
SecondActivity是由MainActivity(內(nèi)部Activity)來啟動(dòng)訪問的,所以SecondActivity不需要配置intent-filter
activity
android:name=".SecondActivity"
android:label="@string/second_activity_label"
android:exported="false"/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 退稅代收協(xié)議書模板
- 路面承包協(xié)議書范本
- 道路消防井采購合同協(xié)議
- 進(jìn)口小電梯訂購合同協(xié)議
- 無償漏水協(xié)議書
- 狂犬疫苗協(xié)議書
- 造紙?jiān)O(shè)備出售合同協(xié)議
- 轉(zhuǎn)店公司合同協(xié)議書模板
- 物資保證協(xié)議書
- 正式派遣協(xié)議書
- 變頻器精品課件
- 2022年上海海洋大學(xué)食品科學(xué)復(fù)試資料
- 病例報(bào)告表(CRF)模板
- Q∕GDW 12158-2021 國家電網(wǎng)有限公司重大活動(dòng)電力安全保障工作規(guī)范
- 我把沒有送給你(課堂版)(1)
- 杭汽HNKS50-63-28型汽輪機(jī)大修施工方案
- Q∕GDW 12113-2021 邊緣物聯(lián)代理技術(shù)要求
- 劉半農(nóng)雨散文的特點(diǎn)
- 濰柴發(fā)動(dòng)機(jī)WD615系列分解圖冊
- 碎石、砂出廠合格證
- 南靖和溪各姓氏源流
評論
0/150
提交評論