Android中Activity有什么用
导读:本文共4152.5字符,通常情况下阅读需要14分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 理论概述Activity的理解Activity的定义Activity,字面翻译为活动,他是Android定义的四大应用组件之一,也是最重要的用的最多的。一个应用有多个界面,也就是包含多个ActivityActivity的作用用来提供一个能够让用户操作并与之交互的界面一个Activity相当于一个容器,用于存放各种控件的容器,也可以理解为是与用户交互的接口类比Ac... ...
目录
(为您整理了一些要点),点击可以直达。理论概述
Activity的理解
Activity的定义
Activity,字面翻译为活动,他是Android定义的四大应用组件之一,也是最重要的用的最多的。
一个应用有多个界面,也就是包含多个Activity
Activity的作用
用来提供一个能够让用户操作并与之交互的界面
一个Activity相当于一个容器,用于存放各种控件的容器,也可以理解为是与用户交互的接口
类比Activity与Servlet
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(OnClickListenerlistener);
layout中添加监听
layout中
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="MainStart2"android:text="带回调启动"/>
Activity中
packagecom.example.activity_01;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Toast;publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}publicvoidMainStart2(Viewview){Toast.makeText(this,"带回调启动",Toast.LENGTH_SHORT).show();}}
设置长按监听
view.setOnLongClickListener(OnLongClickListenerlistener);
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).显示到EditText4.实现一般返回: 1).在显示Second界面时,Main界面其实在,只是被盖住了 2).关闭当前界面:finish()
Activity的使用
界面布局
实现Activity的功能
1). 定义所有需要操作的视图对象并初始化
2). 给视图设置监听
3). 在回调方法中实现逻辑
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;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){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);}//在回调方法中实现逻辑@OverridepublicvoidonClick(Viewview){//view就是发生(操作的)事件的视图对象if(view==btn_main_start1){Toast.makeText(this,"一般启动",Toast.LENGTH_SHORT).show();}elseif(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
配置清单
<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.example.activity_01"><applicationandroid: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>--><activityandroid:name=".SecondActivity"android:label="@string/second_activity_label"android:exported="false"/><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
Android中Activity有什么用的详细内容,希望对您有所帮助,信息来源于网络。