最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android四大組件之Activity詳細(xì)介紹

 更新時(shí)間:2021年12月29日 15:53:44   作者:胡椒粉0121  
大家好,本篇文章主要講的是Android四大組件之Activity詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽

理論概述

Activity的理解

Activity的定義

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

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

Activity的作用

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

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

類(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(Context context, Class activityClass),使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對(duì)象就是顯式的

隱式: Intent(String action) //與Activity與的action匹配,使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對(duì)象就是隱式的,例如分享功能,也是啟動(dòng)另外一個(gè)Activity,但是到底啟動(dòng)哪個(gè)Activity,還不知道,由用戶(hù)選擇

攜帶數(shù)據(jù)

額外: putExtra(String key, Xxx value) 內(nèi)部用map容器保存

有特定前綴: setData(Uri data) //tel:123123, smsto:123123

讀取數(shù)據(jù)

額外:Xxx getXxxExtra(String key)

有特定前綴: Uri getData()

IntentFilter的理解

在配置Activity時(shí),可以為Activity指定一個(gè)IntentFilter的配置

如果你的Activity希望其他應(yīng)用能訪(fǎng)問(wèn)到,需要配置<intent-filter>

如果這個(gè)Activity是被內(nèi)部應(yīng)用的某個(gè)Activity來(lái)訪(fǎng)問(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(OnClickListener listener);

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

layout中

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="MainStart2"
    android:text="帶回調(diào)啟動(dòng)"/>

Activity中

package com.example.activity_01;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
    public void MainStart2(View view) {
        Toast.makeText(this, "帶回調(diào)啟動(dòng)", Toast.LENGTH_SHORT).show();
    }
}

設(shè)置長(zhǎng)按監(jiān)聽(tīng)

view.setOnLongClickListener(OnLongClickListener listener);

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)邏輯

package com.example.activity;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
import com.google.android.material.textfield.TextInputEditText;
 
public class MainActivity extends Activity implements View.OnClickListener {
 
    private TextInputEditText main_message;
    private Button btn_main_start1;
    private Button btn_main_start2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        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
    public void onClick(View view) { // view 就是發(fā)生(操作的)事件的視圖對(duì)象
        if(view == btn_main_start1) {
            Toast.makeText(this, "一般啟動(dòng)", Toast.LENGTH_SHORT).show();
        } else if (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

配置清單

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/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)訪(fǎng)問(wèn)的,所以SecondActivity不需要配置<intent-filter>
        -->
        <activity
            android:name=".SecondActivity"
            android:label="@string/second_activity_label"
            android:exported="false" />
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

?總結(jié)

到此這篇關(guān)于Android四大組件之Activity詳解的文章就介紹到這了,更多相關(guān)Android Activity組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

如东县| 马尔康县| 阿克| 五寨县| 天长市| 来宾市| 大理市| 隆德县| 土默特左旗| 临漳县| 钟山县| 栾川县| 连南| 康定县| 尼玛县| 莆田市| 大连市| 兴和县| 大新县| 顺昌县| 葵青区| 厦门市| 东乌| 宜章县| 老河口市| 砚山县| 中江县| 新化县| 红原县| 平山县| 富阳市| 新余市| 永新县| 潞城市| 余江县| 宜春市| 九寨沟县| 华池县| 东明县| 桦南县| 临沧市|