欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android四大組件之Activity詳細介紹

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

理論概述

Activity的理解

Activity的定義

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

一個應用有多個界面,也就是包含多個Activity

Activity的作用

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

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

類比Activity與Servlet

Intent的理解

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

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

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

Intent的分類

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

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

Intent的使用

創(chuàng)建

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

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

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

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

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

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

額外:Xxx getXxxExtra(String key)

有特定前綴: Uri getData()

IntentFilter的理解

在配置Activity時,可以為Activity指定一個IntentFilter的配置

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

如果這個Activity是被內部應用的某個Activity來訪問的,就不需要配置<intent-filter>

如果想啟動其他應用界面你必須用隱式的intent,且目標界面Activity配置了<intent-filter>

相關的API

設置點擊監(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="帶回調啟動"/>

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

設置長按監(jiān)聽

view.setOnLongClickListener(OnLongClickListener listener);

Activity的開發(fā)

開發(fā)流程

1. 界面布局
2. 實現(xiàn)Activity的功能
	1). 定義所有需要操作的視圖對象并初始化
	2). 給視圖設置監(jiān)聽
	3). 在回調方法中實現(xiàn)邏輯
3. 實現(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. 實現(xiàn)一般返回:
	1). 在顯示Second界面時, Main界面其實在, 只是被蓋住了
	2). 關閉當前界面: finish()

Activity的使用

界面布局

實現(xiàn)Activity的功能

1). 定義所有需要操作的視圖對象并初始化
2). 給視圖設置監(jiān)聽
3). 在回調方法中實現(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);
 
        // 給視圖設置監(jiān)聽
        btn_main_start1.setOnClickListener(this);
        btn_main_start2.setOnClickListener(this);
    }
 
    // 在回調方法中實現(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, "帶回調啟動", Toast.LENGTH_SHORT).show();
        }
    }
}

實現(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

配置清單

<?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的標題,可以引用一個字符串(必須在string.xml中有定義),也可以直接寫字符串,但不建議
            SecondActivity是由MainActivity(內部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詳解的文章就介紹到這了,更多相關Android Activity組件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 多語言切換在Androidx失效的踩坑解決記錄

    多語言切換在Androidx失效的踩坑解決記錄

    這篇文章主要為大家介紹了多語言切換在Androidx失效的踩坑解決記錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Android性能調優(yōu)利器StrictMode應用分析

    Android性能調優(yōu)利器StrictMode應用分析

    StrictMode意思為嚴格模式,是用來檢測程序中違例情況的開發(fā)者工具。最常用的場景就是檢測主線程中本地磁盤和網(wǎng)絡讀寫等耗時的操作。這篇文章給大家介紹Android性能調優(yōu)利器StrictMode應用分析,感興趣的朋友一起看看吧
    2018-01-01
  • Android如何判斷頁面是否全屏

    Android如何判斷頁面是否全屏

    這篇文章主要介紹了Android如何判斷頁面是否全屏,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04
  • Android ListView與ScrollView沖突的解決方法總結

    Android ListView與ScrollView沖突的解決方法總結

    這篇文章主要介紹了Android ListView與ScrollView沖突的解決方法總結的相關資料,需要的朋友可以參考下
    2017-04-04
  • Android okhttp使用的方法

    Android okhttp使用的方法

    本篇文章主要介紹了Android okhttp使用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Android深入探究自定義View之嵌套滑動的實現(xiàn)

    Android深入探究自定義View之嵌套滑動的實現(xiàn)

    什么是嵌套滑動?當我們向下滑動時,首先是外部的布局向下滑動,然后才是內部的RecyclerView滑動,向上滑動也是如此。這就是嵌套滑動的效果
    2021-11-11
  • 詳解Android中處理崩潰異常

    詳解Android中處理崩潰異常

    這篇文章主要介紹了Android中處理崩潰異常的相關資料,需要的朋友可以參考下
    2015-12-12
  • Android動畫之漸變動畫(Tween Animation)詳解 (漸變、縮放、位移、旋轉)

    Android動畫之漸變動畫(Tween Animation)詳解 (漸變、縮放、位移、旋轉)

    這篇文章主要介紹了Android動畫之漸變動畫(Tween Animation)用法,結合實例形式詳細分析了Android漸變動畫Tween Animation實現(xiàn)漸變,縮放,位移,旋轉等技巧,需要的朋友可以參考下
    2016-01-01
  • Android實現(xiàn)隨機生成驗證碼

    Android實現(xiàn)隨機生成驗證碼

    在登錄注冊軟件時,經(jīng)常會要求填寫隨機驗證碼,這篇文章為大家詳細主要介紹了Android實現(xiàn)隨機生成驗證碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Android 控件GridView使用案例講解

    Android 控件GridView使用案例講解

    這篇文章主要介紹了Android 控件GridView使用案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論