Android开发基础知识-Intent,不同Activity之间传递资源

1.UI(用户界面设计user interface)

1.Android提供丰富多样的预置UI组件(component),包括:结构化布局对象、UI控件、对话框、通知和菜单等。利用这些组件就可为应用构建图形界面。
2.Android UI都是由布局和控件组成的。

布局(Layout)和控件(widget)

1.布局可定义应用中的界面结构。布局中的所有元素均使用View和ViewGroup对象的层次结构进行构建。
2.View用来绘制用户可查看并进行交互的内容。
3.ViewGroup是不可见容器,用于定义View和其他ViewGroup对象的布局结构。

View对象就是通常说的“控件(widget)”,可以是众多子类之一,例如Button或TextView 。
ViewGroup对象通常称为“布局(layout)”,可以是提供其他布局结构的众多类型之一,例如LinearLayout或ConstraintLayout。
Android开发基础知识-Intent,不同Activity之间传递资源_第1张图片

加载XML资源

当编译应用时,系统会将每个XML布局文件编译成View资源。在Activity.onCreate()回调内,通过调用setContentView(),并以R.layout.layout_file_name 形式向应用代码传递布局资源的引用,加载应用代码中的布局资源。
Android开发基础知识-Intent,不同Activity之间传递资源_第2张图片

典型布局(Layout)

典型的传统布局(学习简单的XML编辑方法)
RelativeLayout、LinearLayout、FrameLayout、TableLayout、GridLayout

当前的主流布局形式(学习视图式的设计方法,同时在XML中修改)
ConstraintLayout约束布局

四大组件

Android程序的四大组件包括:
Activity活动、
Service服务、
BroadcastReceiver广播接收器、
Content Provider内容提供者

Activity的概念和基本用法

[官方解释]Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作, 比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口,而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!
总结:
1、Activity用于显示用户界面,用户通过与Activity交互完成相关操作。
2、一个App允许有多个Activity

创建Activity

创建一个活动,实质上做了三件事:
1、创建与该活动对应的布局文件(XML),来负责UI
2、创建一个继承自Activity或AppCompatActivity类的子类: class MyActivity extends AppCompatActivity
在该类中重写onCreate()方法,并在该方法中调用setContentView(R.layout.布局资源名)设置要显示的视图。
3、在AndroidManifest.xml中注册该活动

启动Activity

一个Android工程的主Activity的启动,通过在AndroidManifest.xml中注册来实现
Android开发基础知识-Intent,不同Activity之间传递资源_第3张图片
action中的android.intent.action.MAIN表明它所在的Activity是整个程序的入口。
category中的android.intent.category.LAUNCHER意思是把这个Activityg归属到加载器类,即把这个Activity标注为自动会加载和启动的Activity,这样程序启动时候就会先加载这个Activity。

启动方法

方法一:显示启动

Intent intent = new Intent(当前活动.this, 要启动的活动.class);
startActivity(intent);

方法二:隐示启动
在AndroidManifest.xml中为新的活动添加Intent过滤器:
Android开发基础知识-Intent,不同Activity之间传递资源_第4张图片
在原活动的Java代码中启动新活动

startActivity(new Intent("com.example.activitystart.ACTION_START"));

一般这句话是随便写的
intent-filter的作用:
在action标签中指明了本活动可以响应com.example.activitystart.ACTION_START这个动作。
在category标签中包含了一些附加信息,更精确指明了本活动能响应的Intent中还可能带有的category。其中,android.intent.category.DEFAULT是一种默认的category,在调用startActivity()方法时会自动将该category添加到Intent中。
只有当action和category标签中的内容能够匹配上Intent中指定的action和category时,这个活动才能响应该Intent。
每个Intent中只能指定一个action,但能指定多个category

1)活动1传递数据给活动2: 少量数据

Android开发基础知识-Intent,不同Activity之间传递资源_第5张图片

活动2接收时,同样创建一个Intent对象,并利用getIntent()方法接收数据。
然后利用Intent对象的“get类型Extra()”方法分别接收不同类型的数据
Android开发基础知识-Intent,不同Activity之间传递资源_第6张图片

2)活动1传递数据给活动2: 大量数据

活动1传递大量数据时,采用putExtra()方法效率很低,可以利用Bundle来传递数据。

Android开发基础知识-Intent,不同Activity之间传递资源_第7张图片

活动2接收时,同样创建一个Intent对象in,并利用getIntent()方法接收数据。
然后创建Bundle对象,并利用上边的in对象的getExtras()方法获取Bundle数据。
最后利用Bundle对象的“get类型(key标签)”方法读取Bundle中的内容。

Android开发基础知识-Intent,不同Activity之间传递资源_第8张图片

3)多个Activity间的交互(后一个传回给前一个)

Android开发基础知识-Intent,不同Activity之间传递资源_第9张图片

具体可见https://www.runoob.com/w3cnote/android-tutorial-activity-start.html

你可能感兴趣的:(c++,android-studio)