Android四大組件之Activity詳細(xì)介紹_第1頁(yè)
Android四大組件之Activity詳細(xì)介紹_第2頁(yè)
Android四大組件之Activity詳細(xì)介紹_第3頁(yè)
Android四大組件之Activity詳細(xì)介紹_第4頁(yè)
Android四大組件之Activity詳細(xì)介紹_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Android四大組件之Activity詳細(xì)介紹目錄理論概述Activity的理解Activity的定義Activity的作用類(lèi)比Activity與ServletIntent的理解Intent的分類(lèi)Intent的使用IntentFilter的理解相關(guān)的API設(shè)置點(diǎn)擊監(jiān)聽(tīng)Activity中添加監(jiān)聽(tīng)layout中添加監(jiān)聽(tīng)設(shè)置長(zhǎng)按監(jiān)聽(tīng)Activity的開(kāi)發(fā)開(kāi)發(fā)流程Activity的使用

總結(jié)

理論概述

Activity的理解

Activity的定義

Activity,字面翻譯為活動(dòng),他是Android定義的四大應(yīng)用組件之一,也是最重要的用的最多的。

一個(gè)應(yīng)用有多個(gè)界面,也就是包含多個(gè)Activity

Activity的作用

用來(lái)提供一個(gè)能夠讓用戶操作并與之交互的界面

一個(gè)Activity相當(dāng)于一個(gè)容器,用于存放各種控件的容器,也可以理解為是與用戶交互的接口

類(lèi)比Activity與Servlet

Intent的理解

Intent,直譯為意圖,也就是你想要做什么或者想要去哪

Intent(Activity,Service,BroadcastReceiver三個(gè)組件間通信的信使),但不是Android中的四大組件之一。

例如:我要在Activity中啟動(dòng)另外一個(gè)Activity,就必須使用Intent對(duì)象。Intent對(duì)象還可以攜帶數(shù)據(jù)

Intent的分類(lèi)

顯式:明確指定的目標(biāo)組件的意圖(也就是說(shuō)很明確知道要做什么去或者去哪里),當(dāng)操作當(dāng)前應(yīng)用自己的組件的時(shí)候使用顯式Intent

隱式:沒(méi)有明確指定目標(biāo)組件的意圖(也就是說(shuō)不明確知道要做什么去或者去哪里),操作其它應(yīng)用自己的組件的時(shí)候使用隱式Intent

Intent的使用

創(chuàng)建

顯式:Intent(Contextcontext,ClassactivityClass),使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對(duì)象就是顯式的

隱式:Intent(Stringaction)//與Activity與的action匹配,使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對(duì)象就是隱式的,例如分享功能,也是啟動(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)用能訪問(wèn)到,需要配置intent-filter

如果這個(gè)Activity是被內(nèi)部應(yīng)用的某個(gè)Activity來(lái)訪問(wèn)的,就不需要配置intent-filter

如果想啟動(dòng)其他應(yīng)用界面你必須用隱式的intent,且目標(biāo)界面Activity配置了intent-filter

相關(guān)的API

設(shè)置點(diǎn)擊監(jiān)聽(tīng)

Activity中添加監(jiān)聽(tīng)

view.setOnClickListener(OnClickListenerlistener);

layout中添加監(jiān)聽(tīng)

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è)置長(zhǎng)按監(jiān)聽(tīng)

view.setOnLongClickListener(OnLongClickListenerlistener);

Activity的開(kāi)發(fā)

開(kāi)發(fā)流程

1.界面布局

2.實(shí)現(xiàn)Activity的功能

1).定義所有需要操作的視圖對(duì)象并初始化

2).給視圖設(shè)置監(jiān)聽(tīng)

3).在回調(diào)方法中實(shí)現(xiàn)邏輯

3.實(shí)現(xiàn)一般啟動(dòng)

1).定義好界面二

1).布局

2).定義Activity類(lèi)

3).配置

4).重寫(xiě)onCreate(),并加載布局

2).啟動(dòng)界面二

1).創(chuàng)建Intent對(duì)象(顯式)

2).通過(guò)intent攜帶額外數(shù)據(jù)

3).啟動(dòng)Activity

4).得到intent對(duì)象

5).通過(guò)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).定義所有需要操作的視圖對(duì)象并初始化

2).給視圖設(shè)置監(jiān)聽(tīng)

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);

//視圖對(duì)象并初始化

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)聽(tīng)

btn_main_start1.setOnClickListener(this);

btn_main_start2.setOnClickListener(this);

//在回調(diào)方法中實(shí)現(xiàn)邏輯

@Override

publicvoidonClick(Viewview){//view就是發(fā)生(操作的)事件的視圖對(duì)象

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類(lèi)

3).配置

4).重寫(xiě)onCreate(),并加載布局

2).啟動(dòng)界面二

1).創(chuàng)建Intent對(duì)象(顯式)

2).通過(guò)intent攜帶額外數(shù)據(jù)

3).啟動(dòng)Activity

4).得到intent對(duì)象

5).通過(guò)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:配置全類(lèi)名,com.example.activity_01.SecondActivity,可以將包名省略

android:label:定義一個(gè)Activity的標(biāo)題,可以引用一個(gè)字符串(必須在string.xml中有定義),也可以直接寫(xiě)字符串,但不建議

SecondActivity是由MainActivity(內(nèi)部Activity)來(lái)啟動(dòng)訪問(wèn)的,所以SecondActivity不需要配置intent-filter

activity

android:name=".SecondActivity"

android:label="@string/second_activity_label"

android:exported="false"/

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論