🗒️Android 移动应用开发基础教程 微课版

type
elog
tags
category
date
description
updated
Jun 25, 2024 01:12 PM
password
permalink
slug
icon

下载地址

Android 移动应用开发基础教程 微课版

记录阅读 《Android 移动应用开发基础教程 微课版》 ISBN-978-7-115-47309-7 遇到的坑,这里将书上所有的代码示例整合进一个app,方便大家学习的时候有个参考。同时也将可能遇到的错误记录在这份文件中
  • android studio version 4.0.1
  • android SDK 10.0+

最终效果

notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
 

第一章 环境部署

jetbrains会帮你安好android studio
安装好后列表里有Android studio 点击安装即可,也可以切换版本,我这里用的时4.0.1版
进入Android studio 后如果你没有安装 android sdk 会让你安装 sdk 这里可能需要科学上网,另外后面程序下载依赖也需要用到科学上网。

gradle

引用包

设置版本号

第二章 核心组件-活动

活动是什么

在android中运行任何应用都会看到不同的界面,这些界面及在界面中完成的各种操作,都通过活动完成
活动具有一下特点
  • 可以通过返回键退出活动
  • 可通过home建返回桌面
  • 可在活动中启动另一个界面,此时按返回键可返回前一个活动
一个应用通常包含多个活动,活动之间相对独立,包含多个活动的应用,需要为其指定一个“主”活动,即启动应用时首先打开的活动。
Android 允许启动其他应用中的活动

活动的基本操作

为活动绑定自定义视图
通常在活动的onCreate()方法中使用setContentView()方法来为活动绑定一个视图

启动另一个活动

启动活动使用的是startActivity()方法
结束活动则调用finish(),为按钮绑定事件监听器后点击按钮调用finish()即可实现点击按钮退出活动

在活动中使用Intent

显示Intent

直接忽略1-6步,手动创建java class后给class继承Activity后会自动引入相关包,后面步骤同理

隐式Intent

这一步不要被android.support.v7.app.AppCompatActivity吸引了注意力,后面的代码其实还是继承AppCompatActivity,参照上面手动输入即可,android studio会自动引入,我这边自动引入为androidx.appcompat.app.AppCompatActivity,如果过程中遇到问题,可以编辑build.gradle**注意这个文件有两个,选(Module:app)**在dependencies中加入一行compile 'com.android.support:appcompat-v7:26.+'然后android studio会报错,照着报错修复即可,这一步可能会操作到Migrate to AndroidX,android studio也会自动为你备份,不必担心。
这一步我在代码中做了各种分享功能相关解析在这里源代码参考链接

使用预定义操作

这里使用隐式Intent打开联系人信息的地方可能不太一样了,参考官网给出的样例
我的代码实现也是参考官网给出的样例,实现也很简单,这里代码去掉了注释,完整源代码在这里

在活动之间传递数据

这一章节本身简单学习了活动的传递方式,重点了解如何在活动中传递数据。
书上的示例比较简单,new完intent后使用putExtra类似key,value的方式存进去就行。
当然在activity中传递数据的方法不止intent的,只是intent比较常用。
Activity之间传递数据的几种方式,参考自这篇文章,文章比较老了,方法竟然还是这些,甚至阿里巴巴的一些应用也是这样的。
  • 使用Intent
  • 使用剪切板
  • 使用静态变量
Intent可以传递哪些类型的数据,来源
  1. 8种基本数据类型及其数组
  1. String(String实现了 Serializable )/CharSequence实例类型的数据及其数组
  1. 实现了Parcelable的对象及其数组
  1. 实现了 Serializable 的对象及其数组
看到这里的时候我想到能在activity中获取数据,就能用这些数据动态创建页面,所以顺便看了下动态创建元素的办法。
实际上非常简单,先声明一个LinearLayout
随后在对应的代码里获取到这个元素,再用addView()即可动态添加
想到动态添加元素就觉得可以根据后台请求的数据来生成各种界面,于是就又去了解了一下Android的网络请求方法相关解析关键代码
既然都动态元素添加了,肯定会遇到添加的元素超过容器大小(超出屏幕)的情况,这时在对应的布局文件外面放一层ScrollView即可解决问题。

获取活动返回的数据

这一小节有一小部分不太一样的地方,启动活动变成了startActivityforResult,活动返回时也要用setResult设置返回结果。

活动的生命周期

notion image
这一章节有个检测活动生命周期的例子,这里我写了个直接获取的函数。
放到类里即可,记得把包名和类名换成你自己的即可
随后在生命周期对应的地方(其实其他类中的函数都可以)调用一下即可
最后的效果如图
notion image

代码设置界面元素

比较喜欢用代码生成界面,免去一堆xml难以寻找自己定义的一些东西,同时debug起来也比较麻烦,这里总结一些代码操作ui元素的代码片段

给某个活动设置主题

创建弹出式对话框

问题

Android Studio --“Cannot resolve symbol” 解决办法

Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用。
多半是因为 Android Studio 之前发生了错误,某些 setting 出了问题。解决方法如下:
点击菜单中的 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重启。语法就会正确的高亮了。

参考文章

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
欢迎您在底部评论区留言,一起交流~
VSCode 使用Settings Sync同步配置(最新版傻瓜教程)WebGL从GPU到性能优化
Loading...
目录