溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中Activity有什么用

發(fā)布時間:2021-12-29 16:42:34 來源:億速云 閱讀:224 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下Android中Activity有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

理論概述

Activity的理解

Activity的定義

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

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

Activity的作用

用來提供一個能夠讓用戶操作并與之交互的界面

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

類比Activity與Servlet

Android中Activity有什么用

Intent的理解

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

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

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

Intent的分類

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

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

Intent的使用

創(chuàng)建

顯式: Intent(Context context, Class activityClass),使用這樣的構(gòu)造函數(shù)創(chuàng)建的Intent對象就是顯式的

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

攜帶數(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時,可以為Activity指定一個IntentFilter的配置

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

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

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

相關(guān)的API

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

Activity中添加監(jiān)聽
view.setOnClickListener(OnClickListener listener);
layout中添加監(jiān)聽

layout中

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

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)啟動", Toast.LENGTH_SHORT).show();
    }
}

設(shè)置長按監(jiān)聽

view.setOnLongClickListener(OnLongClickListener listener);

Android中Activity有什么用

Android中Activity有什么用

Activity的開發(fā)

開發(fā)流程

1. 界面布局
2. 實(shí)現(xiàn)Activity的功能
	1). 定義所有需要操作的視圖對象并初始化
	2). 給視圖設(shè)置監(jiān)聽
	3). 在回調(diào)方法中實(shí)現(xiàn)邏輯
3. 實(shí)現(xiàn)一般啟動
	1). 定義好界面二
		1). 布局
		2). 定義Activity類
		3). 配置
		4). 重寫onCreate(), 并加載布局
	2). 啟動界面二
		1). 創(chuàng)建Intent對象(顯式)
		2). 通過intent攜帶額外數(shù)據(jù)
		3). 啟動Activity
		4). 得到intent對象
		5). 通過intent讀取額外數(shù)據(jù)
		6). 顯示到EditText
4. 實(shí)現(xiàn)一般返回:
	1). 在顯示Second界面時, Main界面其實(shí)在, 只是被蓋住了
	2). 關(guān)閉當(dāng)前界面: finish()

Activity的使用

界面布局

Android中Activity有什么用

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

1). 定義所有需要操作的視圖對象并初始化
2). 給視圖設(shè)置監(jiān)聽
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);
 
        // 視圖對象并初始化
        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
    public void onClick(View view) { // view 就是發(fā)生(操作的)事件的視圖對象
        if(view == btn_main_start1) {
            Toast.makeText(this, "一般啟動", Toast.LENGTH_SHORT).show();
        } else if (view == btn_main_start2) {
            Toast.makeText(this, "帶回調(diào)啟動", Toast.LENGTH_SHORT).show();
        }
    }
}

實(shí)現(xiàn)一般啟動

1). 定義好界面二
1). 布局
2). 定義Activity類
3). 配置
4). 重寫onCreate(), 并加載布局
2). 啟動界面二
1). 創(chuàng)建Intent對象(顯式)
2). 通過intent攜帶額外數(shù)據(jù)
3). 啟動Activity
4). 得到intent對象
5). 通過intent讀取額外數(shù)據(jù)
6). 顯示到TextInputEditText

Android中Activity有什么用

配置清單

<?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: 配置全類名,com.example.activity_01.SecondActivity,可以將包名省略
            android:label: 定義一個Activity的標(biāo)題,可以引用一個字符串(必須在string.xml中有定義),也可以直接寫字符串,但不建議
            SecondActivity是由MainActivity(內(nèi)部Activity)來啟動訪問的,所以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>

以上是“Android中Activity有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI