温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中Activity有什么用

发布时间:2021-12-29 16:42:34 来源:亿速云 阅读:234 作者:小新 栏目:开发技术

小编给大家分享一下Android中Activity有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

理论概述

Activity的理解

Activity的定义

Activity,字面翻译为活动,他是Android定义的四大应用组件之一,也是最重要的用的最多的。

一个应用有多个界面,也就是包含多个Activity

Activity的作用

用来提供一个能够让用户操作并与之交互的界面

一个Activity相当于一个容器,用于存放各种控件的容器,也可以理解为是与用户交互的接口

类比Activity与Servlet

Android中Activity有什么用

Intent的理解

Intent,直译为意图,也就是你想要做什么或者想要去哪

Intent(Activity, Service, BroadcastReceiver三个组件间通信的信使),但不是Android中的四大组件之一。

例如:我要在Activity中启动另外一个Activity,就必须使用Intent对象。Intent对象还可以携带数据

Intent的分类

显式: 明确指定的目标组件的意图(也就是说很明确知道要做什么去或者去哪里),当操作当前应用自己的组件的时候使用显式Intent

隐式: 没有明确指定目标组件的意图(也就是说不明确知道要做什么去或者去哪里),操作其它应用自己的组件的时候使用隐式Intent

Intent的使用

创建

显式: Intent(Context context, Class activityClass),使用这样的构造函数创建的Intent对象就是显式的

隐式: Intent(String action) //与Activity与的action匹配,使用这样的构造函数创建的Intent对象就是隐式的,例如分享功能,也是启动另外一个Activity,但是到底启动哪个Activity,还不知道,由用户选择

携带数据

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

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

读取数据

额外:Xxx getXxxExtra(String key)

有特定前缀: Uri getData()

IntentFilter的理解

在配置Activity时,可以为Activity指定一个IntentFilter的配置

如果你的Activity希望其他应用能访问到,需要配置<intent-filter>

如果这个Activity是被内部应用的某个Activity来访问的,就不需要配置<intent-filter>

如果想启动其他应用界面你必须用隐式的intent,且目标界面Activity配置了<intent-filter>

相关的API

设置点击监听

Activity中添加监听
view.setOnClickListener(OnClickListener listener);
layout中添加监听

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

设置长按监听

view.setOnLongClickListener(OnLongClickListener listener);

Android中Activity有什么用

Android中Activity有什么用

Activity的开发

开发流程

1. 界面布局
2. 实现Activity的功能
	1). 定义所有需要操作的视图对象并初始化
	2). 给视图设置监听
	3). 在回调方法中实现逻辑
3. 实现一般启动
	1). 定义好界面二
		1). 布局
		2). 定义Activity类
		3). 配置
		4). 重写onCreate(), 并加载布局
	2). 启动界面二
		1). 创建Intent对象(显式)
		2). 通过intent携带额外数据
		3). 启动Activity
		4). 得到intent对象
		5). 通过intent读取额外数据
		6). 显示到EditText
4. 实现一般返回:
	1). 在显示Second界面时, Main界面其实在, 只是被盖住了
	2). 关闭当前界面: finish()

Activity的使用

界面布局

Android中Activity有什么用

实现Activity的功能

1). 定义所有需要操作的视图对象并初始化
2). 给视图设置监听
3). 在回调方法中实现逻辑

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);
 
        // 给视图设置监听
        btn_main_start1.setOnClickListener(this);
        btn_main_start2.setOnClickListener(this);
    }
 
    // 在回调方法中实现逻辑
    @Override
    public void onClick(View view) { // view 就是发生(操作的)事件的视图对象
        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();
        }
    }
}

实现一般启动

1). 定义好界面二
1). 布局
2). 定义Activity类
3). 配置
4). 重写onCreate(), 并加载布局
2). 启动界面二
1). 创建Intent对象(显式)
2). 通过intent携带额外数据
3). 启动Activity
4). 得到intent对象
5). 通过intent读取额外数据
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的标题,可以引用一个字符串(必须在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有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI