android开发阶段总结

 

1. Activity的基本概念,生命周期,Intent的数据传递方法


Activity是应用程序的一个组件,Activity是表示一个视图层次结构的窗口,Activity通常填充屏幕,可以嵌入其他活动,也可以显示为浮动窗口,Activity是一个Java类,通常用一个文件表示Activity.

Activity的功能:

  • 表示一个活动

  • 处理用户的按钮单击,文本输入等用户交互
  • 启动自身或其他应用程序的活动
  • 具备创建,启动,运行,暂停,恢复,停止和销毁等生命周期

与App的关系

  • 应用程序有多个活动松散地捆绑在一起组成
  • 用户看到的第一个活动称为"主活动"
  • Activity需要在AndroidManifest配置文件中组织父子关系,帮助导航

与Layout的关系

  • 一个Activity通常有一个UI布局文件
  • 创建Activity时设置布局文件

Activity的生命周期

Intent的数据传递方法

Intent被称为"意图",是对要执行操作的描述,Intent是用于从另一个应用组件请求一个动作的对象

Intent的功能

  • 启动Activity
  • 启动Service
  • 发送Broadcast

所有的Activity实例都由Android运行时进行管理,由"Intent"开始,将信息传递给Android系统运行Activity

使用Intent发送数据的两种方式

  • data:使用setData()方法传递Uri类型的数据,如
  1. intent.setData(Uri.parse("http://www.baidu.com"));
  2. intent.setData(Uri.fromFile(new File("/sdcard/sample.jpg")));
  • extras:使用Key-Value对传递数据
  1. intent.putExtra(String name,int value);
  2. intent.putExtra(String name,String[]  value);
  3. intent.putExtras(Bundle bundle);

使用Intent接收数据的两种方式

  • data:使用getData()方法接收Uri类型的数据,如
  1. Uri locationUri=intent.getData();
  • extras:接收Key-Value对数据
  1. int level=intent.getIntExtra("level",0);
  2. Bundle bundle=intent.getExtras();

2. 基本控件和常用布局的基本概念、必填参数

MVC模型

  • Android应用遵循MVC模型
  1. Controller:即Activity/Fragment
  2. View:即用户界面元素
  3. Model:自行编写代码
  • View及其子类
  1. View:在界面上显示具体的内容,响应各种事件等
  2. ViewGroup:不会显示具体的内容,而是其他组件的集合,或是将单一的View组件合成一个新的组件,主要起到布局作用。
  • Activity通过布局管理添加各种View组件,调用Activity的setContentView方法可以将指定的视图对象呈现出来。

View

  • 在手机上所看到的每个用户界面元素都是View
  • View子类是用户界面的基本构成模块如:
  1. 显示文本的TextView类、编辑文本的EditText类;
  2. 显示Button类、菜单Menu以及其它控件;
  3. 可滚动的RecyclerView类、ScrollView类;
  4. 显示图像的ImageView类;
  5. ViewGroups视图包括LinearLayout、RelativeLayout等布局

ViewGroup

  • ViewGroup提供了对其子View的管理功能,包括布局、动画等。子组件可以是View、也可以是ViewGroup。

layout的含义

  • layout布局是特定类型的ViewGroup
  • layout布局可以包含子View
  • layout布局可以在行、列、网格或绝对值设置子View的坐标

Android基本布局

  • LinerLayout:线性布局,子View水平或垂直方向进行排列
  • FrameLayout:帧布局,子View以左上角为起点堆在一起
  • RelativeLayout:相对布局,子View之间的相对定位进行排列
  • GridLayout:网格 布局,子View以行、列方式进行排列
  • ConstraintLayout:约束布局,约束方式连接子View布局

布局概述

  • 布局是一种可用于放置很多控件的容器
  • 多层布局的嵌套:布局内部除了可以放置控件外,还可以放置布局
  • 基本布局:LinearLayout、FrameLayout、GridLayout、RelativeLayout
  • Material Design新增布局:ConstratintLayout、TextInputLayout、TabLayout、DrawerLayout、CorrdinatorLayout

布局的通用属性

  • Android系统中常用布局直接或间接继承自ViewGroup,因此它们也支持在ViewGroup中定义的属性,这些属性可以看作是布局的通用属性。

Android基本控件

  • TextView:文本框控件
  • EditText:编辑框控件
  • Button:按钮控件
  • ImageView:图片控件
  • CheckBox:选择框控件
  • RadioButton:单选框控件
  • Snackbar:消息框控件
  • TextInputLayout:文本输入布局
  • ViewBinding:视图绑定

3. 菜单的类型,如何创建

菜单概述

  1.  选项菜单:OptionsMenu,Activity的主菜单项集合,放置对应用产生全局影响的操作,如:搜索、设置等
  2. 浮动模式的上下文菜单:ContentMenu,用户长按某个元素出现的浮动菜单,提供的操作影响所选内容
  3. 上下文操作模式的上下文菜单
  4. 弹出菜单:PopupMenu,以垂直列表形式显示一系列菜单项,并且该列表会固定到调用该菜单的视图中,它适用于提供与特定内容相关的操作,如:Activity的内容区域相关的扩展操作

App Bar

  • 屏幕顶部的标题栏称为ActionBar或Toolbar,包括
  1. 导航图标:用户打开导航抽屉
  2. 当前Activity的标签名称
  3. 选项菜单项的图标
  4. 溢出按钮:其他的选项菜单项目

选项菜单

  • Android3.0及更高版本,选项菜单出现在Toolbar中,取消了物理按钮的底部弹出菜单
  1. 重要菜单项的图标
  2. 动作溢出按钮
  3. 右侧显示的其余菜单项
  • 实现步骤:
  1. 创建菜单布局XML文件
  2. 在Activity类加载菜单
  3. 为菜单项注册点击事件
  4. 编写处理菜单项的处理方法

上下文菜单

  • 长按一个支持上下文菜单的视图,菜单显示有两种模式
  1. 浮动模式:在点击位置显示菜单列表(类似于对话框)
  2. 上下文模式:在屏幕顶部栏显示上下文菜单项图标

创建上下文菜单

  1. 创建菜单的XML资源文件
  2. 调用registerForContextMenu(),注册与上下文菜单关联的View,并将其传递给View
  3. 在Activity类中实现onCreateContextMenu()方法,加载菜单资源
  4. 实现onContextItemSelected()处理菜单项的点击事件
  5. 创建每个菜单项处理的方法

  • 上下文操作模式的创建步骤
  1. 创建XML菜单资源文件
  2. 控件调用setOnLongClickListener()设置长按事件监听器,其中调用startActionMode()方法启动上下文操作模式
  3. 实现ActionMode.Callback接口,重写它的回调方法onCreateActionMode()、onActionItemClicked()等回调方法
  4. 创建处理菜单项事件的方法

4. 常用资源的类型及定义

什么是资源

  • Android资源:指代码需要的附加文件和静态内容,包括布局、字符串、颜色、数组、动画、位图、图标、音视频和其他应用程序使用的组件等。
  • res目录:用于存放资源编写好的资源通过AAPT(Android AssetPackagingTool)工具自动生成gen目录下的R.java资源索引文件,然后可以在Java代码和XML资源文件中利用索引进行引用。
  • 需要注意的是:该目录下的任何资源出现问题,都会影响R.java文件的生成,导致所有的资源都无法引用。
  • 资源文件的命名规则:由"a-z0-9_."字符组成,不能包含大写字母及中文字符

常用资源及目录

 

样式和主题

  • 样式是一个属性集合,如:设置字体颜色、字号、颜色等属性用于单个View的样式设置样式可以用于单个View、Activity或Application
  • 主题是用于整个App、Activity或View的样式集合
  • 主题还可以用于状态栏、窗口背景等非视图元素
  • 样式和主题在res/values/styles.xml文件进行声明,使用name属性值进行引用,而非XML文件名称

5. Fragment的基本概念,创建及与Activity的交互

Fragment简介

Fragment的中文含义是“片段”或“碎片”,这表明Fragment是嵌在Activity中使用的UI片段,一个Activity中可以组合多个Fragment,多个Activity可重复使用某个Fragment。Fragment可视为Activity的模块化组成部分,它具有自己的生命周期,能处理用户事件,并能在Activity运行时动态添加或溢出。

综上所述,Fragment具备以下优势:

  • 模块化Modularity:无需将所有代码写在Activity中,而是分别写在各自的Fragment中;
  • 重用性Reuasbility:多个Activity可以重用一个Fragment;
  • 适配性Adaptability:根据硬件的屏幕尺寸、屏幕方向,实现不同的布局。

使用Fragment

创建Fragment的方法与Activity类似,自定义Fragment类继承自androidx.fragment.app.Fragment,示例代码如下:
 

public class TitleFragment extends Fragment{

@Overrid
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
View view=inflater.inflate(R.layout.fragment_title,container,false);
return view;
}
}

Activity添加Fragment

创建的Fragment必须添加到Activity中才能使用。Activity添加Fragment有静态和动态两种方式,下面一一讲解。

1.静态加载

在Activity的布局文件中使用<fragment>标签静态添加Fragment,必须指定android:name属性,其属性值为Fragment的全限定名;toos:layout属性用于设置Fragment的布局,属性值为layout目录的fragment的名称;app:layout_constrainVertical_weight属性是ConstrainLayout布局设置纵向权重的属性。
2.动态添加Fragment

实际项目使用静态加载的场景很少,绝大多数是根据具体情况在程序运行时动态添加Fragment,这样做的好处是可定制Fragment.需要注意的是,若需要在运行时添加或替换Fragment时,则Activity布局必须有一个装在Fragment的布局容器.

然后,在MainActivity类使用FragmentManager对象管理Fragment的添加,移除,替换以及执行其它事物,最终调用commit()方法提交.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值