当前位置: 首页 > news >正文

Android基础知识

1. Activity的生命周期

  • onCreate:Activity在启动时会被创建,后面一般不会在调用该方法(除非例外情况,将Activity回收,例如内存不足);
  • onStart:Activity启动时,会调用该方法;
  • onResume:Activity可视化时,会调用该方法;
  • onPause:Activity不可见时,会调用该方法;
  • onStop:Activity完全不可见时,会调用该方法;
  • onDestroy:Activity被回收时,会调用该方法。
  • onRestart:上一个Activity没有被回收时,返回可以调用该方法(例如,通过startActivity跳转另一个Activity,可以使用finish返回上一个Activity,此时系统就会调用onRestart方法)

2. Toast

该方法主要作用是弹框,Toast.makeText(Context context, CharSequence text, @Duration int duration)

  • context:上下文内容
  • text:显示的文本
  • duration:弹框展示的时长(Toast.LENGTH_SHORT、Toast.LENGTH_LONG)
    例子:Toast.makeText(MainActivity.this, “弹框学习”, Toast.LENGTH_LONG);

3. Intent

该方法主要用于Activity的转递,Intent(Context packageContext, Class<?> cls);

  • packageContext:当前Activity上下文
  • cls:跳转的Activity实体类
    一般跟startActivity一起使用,达到跳转试图的作用。

4. registerForActivityResult

该方法主要用于接收上一个Activity返回的数据,
registerForActivityResult(
@NonNull ActivityResultContract<I, O> contract,
@NonNull ActivityResultCallback callback)

  • contract:数据格式限制,new ActivityResultContracts.StartActivityForResult()
  • callback:数据回调接口,onActivityResult(ActivityResult result),函数式接口。

5. onSaveInstanceState

该方法用于某个Activity被回收后,先前数据无法获取的情况。可以提前将重要数据放在该方法的Bundle上。然后再Activity的onCreate添加判空逻辑(如果为null,则取savedInstanceState中拿数据)了。

6. Activity的启动模式

  • standard:每次需要活动都重新创建
  • singleTop:每次去栈顶查需要的活动,不在栈顶就重新创建
  • singleTask:在当前应用程序中只存在一个单实例
  • singleInstance:在所有程序的上下文,都只存在一个单实例(会开辟一个单例栈,存放单实例)
    在AndroidManifest.xml的activity标签中配置,android:launchMode=“singleInstance”。

7. TextView

  • android:layout_width:填充宽度,match_parent【与父级同宽】,wrap_content【由内容填充宽度】;
  • android:layout_height:填充高度,match_parent【与父级同高】,wrap_content【由内容填充高度】;
  • android:gravity:文字对齐方式,top、bottom、left、right、center等;
  • android:size:文本内容;
  • android:textSize:文本大小【sp为单位】;
  • android:textColor:文本颜色;
  • android:id:组件id

8. Button

  • android:textAllCaps:false,取消默认英文字母全大写【系统默认将所有英文字母设置为大写】;
  • android:layout_gravity:水平居中;

9. EditText

该组件为文本框

  • android:hint:提示输入信息
  • android:maxLines:输入最大的行数

10. ImageView

该组件为图像域

  • android:src:指定图像地址,一般使用**@drawable/img_src格式
    在Activity可以通过setImageResource()改变图像地址,一般使用
    R.drawable.img_src**格式

11. ProgressBar

该组件为进度条,使用可以参考该文章:进度条使用参考

  • style=“?android:attr/progressBarStyleHorizontal”,设置为水平进度条,默认为圆形进度条;
    可以通过Activity设置进度条状态,progressBar.setVisibility(),三个参数,visible【可见】,invisible【不可见】,gone【不仅不可见,还不会占用屏幕空间】

12. AlertDialog

该组件为弹框提示,有点确认、删除那味道。通过Activity实现,Demo如下

sendBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AlertDialog.Builder builder = new AlertDialog.Builder(FirstActivity.this);builder.setTitle("发送消息");builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(FirstActivity.this, "确认消息发送!", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(FirstActivity.this, "取消消息发送!", Toast.LENGTH_SHORT).show();}});builder.show();}
});

13. ProgressDialog

该组件与AlertDialog使用类似,弹框进度条;

14. LinearLayout

线性布局,依次排列的意思。

  • android:orientation,有两个参数可选,horizontal【水平,android:layout_*记得设置为wrap_content】,vertical【垂直】

15. RelativeLayout

相对布局,手动调整位置。

  • android:layout_alginParentTop:顶部(设置true)
  • android:layout_alginParentBottom:底部(设置true)
  • android:layout_alginParentLeft:靠左(设置true)
  • andorid:layout_alginParentRight:靠右(设置true)
  • android:layout_centerInParent:居中(设置true)
  • android:layout_toLeftOf:位于某个控件的左侧(控件ID)
  • android:layout_toRightOf:位于某个控件的右侧(控件ID)
  • android:layout_above:位于某个控件的上方(控件ID)
  • android:layout_below:位于某个控件的下方(控件ID)
http://www.lryc.cn/news/283993.html

相关文章:

  • linux下把动态库变成静态库
  • 基于STM32单片机设计的智能水温控制系统
  • PIL——图像读取、裁剪、保存操作
  • Windows 下 QT开发环境的搭建:
  • 深度学习中Numpy的一些注意点(多维数组;数据类型转换、数组扁平化、np.where()、np.argmax()、图像拼接、生成同shape的图片)
  • (2023版)斯坦福CS231n学习笔记:DL与CV教程 (56) | 卷积神经网络
  • 表单验证 ---- 在Vue2中使用ElementUI进行表单验证
  • HarmonyOS 转场动画 ForEach控制
  • 2024--Django平台开发-订单项目管理(十四)
  • Docker 安装 CentOS
  • 方案解决:5G基站节能及数字化管理
  • JavaScript深浅拷贝的几种方式
  • VBA窗体跟随活动单元格【简易版】(2/2)
  • 个性化定制的知识付费小程序,为用户提供个性化的知识服务
  • 【轮式平衡机器人】——软硬件配置/准备
  • 中国联通助力吴江元荡生态岸线打造5G+自动驾驶生态长廊
  • 小白准备蓝桥杯之旅(c/c++b组)
  • Flutter GetX 之 国际化
  • 349. 两个数组的交集(力扣)(OJ题)
  • 安全帽识别-赋能深圳自贸中心智慧工地
  • 代码之外:工程师的成长进阶秘籍
  • openssl3.2 - 官方demo学习 - smime - smsign2.c
  • 6.C++对象模型
  • AbstractHttpMessageConverter + easyexcell优雅下载附件
  • 虚拟线程探索与实践
  • openssl3.2 - 官方demo学习 - mac - poly1305.c
  • 【Python 千题 —— 基础篇】不吉利的数字
  • 3d模型未响应打不开怎么办---模大狮模型网
  • Java-NIO 开篇(1)
  • VSCode 插件推荐