本文介绍: 我的是在这里我们打开这个目录,在下面新建一个init.gradle文件进入项目后有一个gradle配置过程这里要换成阿里的源。等待buidle完成即可 ,这里调试项目使用真机调试。这里选择的是33也就是安卓13,后面可以自己选择activity_main.xml布局文件安装sdk前一定要先安装jdk至少1.8以上。点击finish进入开发界面取消勾选33,勾选30。

目录

一、创建项目:

1、环境安装(idea):

下载sdk:

配置gradle

第一次运行遇到的问题:

2、 项目讲解

目录结构

 gradle

 budle.gradle

​编辑 清单文件

Activity 

写一个界面实例:

运行效果:​编辑页面跳转 

 3:控件

文本控件-设置文本内容及大小:

文本控件-设置文本颜色:​编辑

​编辑视图基础-设置宽高:

视图基础-设置视图间距:

​编辑视图基础-设置视图对其方式:

常用布局-线性布局(LinearLayout)

常用布局-相对布局(RelativeLayout)

常用布局-网格布局(GridLayout)

常用布局-滚动视图(ScrolView)

按钮触控-按钮控件button 

按钮触控-点击事件和长按事件

按钮触控-禁用与恢复

​编辑 图像显示-图像视图

 图像显示-图像按钮

 图像显示-同时展现文本与图像

4、界面相关项目实战-计数器

1:界面设计:

​编辑

  5、activity:

启停活动页面

 在活动页面间的消息传递

为活动补充附加信息

中级控件

        图形定制

                图形Drawable

                形状图形

                九宫格图片

                状态列表图形

        选择按钮

                复选框CheckBox

                开关按钮Switch

                单选按钮RadioButton

        文本输入

                编辑框EditText

                焦点变更监听器

                文本变化监听器

        对话框

                提醒对话框AlertDialog

                日期对话框DatePickerDialog

                时间对话框TimePickerDialog

        实战项目:找回密码

                需求描述

                界面设计

                关键代码

数据存储

        共享参数SharedPreferences

                共享参数的用法

                实现记住密码功能

        数据库SQLite

                SQL的基本语法

​编辑

​编辑                数据库管理器SQLiteDatabase

                数据库SQLite

                数据库帮助器SQLiteOpenHelper

                优化记住密码功能

        存储卡的文件操作

                私有存储空间与公共存储空间

                在存储卡上读写文本文件

                在存储卡上读写图片文件

        应用组件Application

                Application的生命周期                利用Application操作全局变量                利用Room简化数据库操作

        实战项目:购物车

                需求描述                界面设计                关键代码


一、创建项目

现在先在ideanew一个安卓项目

1、环境安装idea):

下载sdk

安装sdk前一定要先安装jdk至少1.8以上

这里选择的是33也就是安卓13,后面可以自己选择

等待下载完成,下载完成后,进入选择项目界面,这里选择一个项目

 

 点击finish进入开发界面

 

配置gradle

进入项目后有一个gradle配置过程,这里要换成阿里的源

首先打开gradle配置看看我们gradle在哪里:

我的是在这里,我们打开这个目录,在下面新建一个init.gradle文件

粘贴如下:

allprojects{
    repositories {
        def REPOSITORY_URL = 'https://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            def url = repo.url.toString()
            if ((repo instanceof MavenArtifactRepository) && (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com'))) {
                project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL .'
                remove repo
            }
        }
        maven {
            url REPOSITORY_URL
        }
    }
}

 进入项目点击

等待buidle完成即可 ,这里调试项目使用真机调试

一次运行遇到的问题

1、调试报错

Installed Build Tools revision 33.0.0 is corrupted. Remove and install again using the SDK Manager.

这个是由于33的sdk有有错误

找到sdk目录我的在D:adSDKbuildtools33.0.2下面有个d8.bat改成dx.bat

找到D:adSDKbuildtools33.0.2lib中的d8.jar改成dx.jar

重新点击运行成功运行:

无法安装到真机上报:

Error
			Installation did not succeed.
			The application could not be installed: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

在这里加上:

android:exported="true"(允许被其他应用打开

安装运行成功

2、 项目讲解

目录结构

 activity_main.xml布局文件

 

 

 gradle

 budle.gradle

 

 清单文件

 

 

Activity 

 这就是一个页面,当我们从A页面跳到B页面就会开一个新的Activity

写一个界面实例

1、编写xml文件

 

2、编写java代码控制

注册文件

运行效果页面跳转 

首先准备两个页面文件,通过直接new activity文件,会自动注册

这里可以看到被自动注册进来了:

 在main1中加入按钮

 设计main2界面

在第一页java文件中添加跳转方法

 

 运行成功:

 3:控件

文本控件设置文本内容大小

 

dp与sp对比:

运行起来效果一样:

但是我们调整系统字体大小

此时sp就会变大,所以sp只针对字体

 

文本控件设置文本颜色:

 

java默认颜色透明,在xml中如果没有前面两位默认不透明:

还可以引用源文件

 

 

 设置背景颜色:

 

视图基础-设置宽高

 

 

 

 

视图基础-设置视图间距:

 

视图基础-设置视图对其方式

 

 

 

常用布局线性布局(LinearLayout

 

常用布局-相对布局(RelativeLayout

 

默认在左上角:

 

 

 

 

 

 

 

 跟上级的左边对其

 这样设置跟中间左边,只会飘到上面去

 再设置—条跟它顶部对其

 

 在中间右边

 在中间的上面,并且左边对其

常用布局网格布局(GridLayout

指定两行两列:

效果

 可以使用gravity设置下级居中

 使用列权重均匀分配网格

常用布局滚动视图(ScrolView)

按钮触控-按钮控件button 

 

 按钮绑定监听方法

 

 

按钮触控-点击事件和长按事件

点击事件推荐写法

 如果把这个类直接继承那么,这些按钮公用这个activity都会有监听功能

 

 长按事件:如要返回true那么分组件也会觖发长按

按钮触控-禁用与恢复

 图像显示-图像视图

放一个图片

使用图片

java代码中使用图片

 正常显示

 有时候图片会变大变小:

默认居中

拉伸图片

 代码中的使用:

 图像显示-图像按钮

 xml中设置:

效果

 设置等比居中

 图像显示-同时展现文本与图像

设置图标文字左边:

 效果:

 紫色为默认主题颜色紫色:

手动背景色不会起作用:

修改继承的类:

 

设置文字间距:

4、界面相关项目实战计数器

1:界面设计

 

  5、activity

启停活动页面

启动和结束

生命周期

我们启动一下时执行顺序

先创建活动 -》开始活动活动页面显示在屏幕上-》屏幕上可以交互

 点击跳转

 到下一页:

 跳转执行顺序

onPause当前页面暂停交互但是还是可以显示-》onStop页面不再屏幕上显示

 点击返回

 点击返回主页面:

 

 点击跳转快速点击返回

跳转后立马返回,会导致我正在停止当前的一些交互,还没消失,立马又回来了,那么又可以开始建立交互了。所以这样是不会执行onStop()

 无论是onPause还是onStop内存不足的情况下,都会出现在后台被杀死的情况。从新进来的话就会重新执行onCreate()

启动模式

设置启动模式

 

 比如微信支付支付宝支付,已经支付了,就不需要重复创建

 比如跳转到主界面、播放视频这种耗费资源

 

 

除了在xml中实现,还可以在java代码中动态实现

 1、首先创建两个activity

 

 实现效果,如果没有设置的话,这里我们1->2->1->2点返回的话

就是2->1->2->1->main

但是如果我们设置了的话:

就是1->2->1->2点返回的话:

2->1->main

 

创建页面1

 创建页面2

效果:点击跳转

跳到成功页面点击返回:

 直接退出

 在活动页面间的消息传递

显示intent和隐intent

 

 

 代码中的使用:

这里setComponent可以直接调用包名指定类名,而不需要知道class,常常用于调用第三方应用。 

 ​​​​​​

隐式类似于大家设置一个暗号,对上暗号就可以调用对应的活动:

举个打电话的例子

界面:

 效果:

java代码:

 

打电话效果:

 

 

如果同时intent.xxx是相同的,那么就会跳出一个选择框询问我们选择哪一个应用打开

 如果我们需要被其他应用调用的话,这里我们需要做一些设置,因为默认我们是只能被主页调用,我们需要设置可以被其他应用调用

1、首先修改我们目标应用的xml文件:

在我们的app中设置好相应的name就可以进行跳转了 

向下一个activity发送消息

实例:把文字传到下一个活动中去

界面设计

 

 java代码跳转塞入数据

 第二个活动取数据

页面2设计

java代码:获取传递数据


演示:

向上一个activity发送消息

实例

创建requestresponse界面

    request

java文件:

定义一个register可以调用callback函数进行回调:

红框内添加response处理

通过regist进行跳转:

response

 java代码:

这里解析request

 收到request通过setResult发送一个response回去

 运行逻辑

发送请求

拿到消息,返回应答:

成功处理应答:

为活动补充附加信息

利用资源文件配置字符串

这样的好处就是,资源文件需要编译,方便修改

在资源文件定义一个string

编写空界面:

 在java代码中获取修改:

主activity修改成这个活动运行:

显示成功

 

利用元数据传递配置信息

使用场景第三方sdk读取token就会从这里读取token

直接在配置清单里配置数据

编写一个空文件:

 获取数据

应用页面注册快捷方式

中级控件

        图形定制

                图形Drawable

 使用实例

                形状图形

 实例: 

xml:

点击切换背景

 

 定义矩形shape:

 定义一个椭圆的shape:

 

 默认将我们的activity设置为圆角矩形:

点击改变形状:

效果:

 点击改变:

  

 

                九宫格图片

                状态列表图形

实例

创建选择器定义按下和没有按下的状态

使用,这里为了方便对比,使用一个正常的和选择器的进行对比

 运行效果:

        选择按钮

                复选框CheckBox

自定义复选框样式

自定义selector 使用selector

 效果:

默认选中

复选框事件监听

效果:

                开关按钮Switch

实例

用于显示状态

设置监听

运行效果:

 

                单选按钮RadioButton

        文本输入

                编辑框EditText

 

隐藏边框

 设置边框获取焦点失去焦点样式

聚焦shape:

 

失去焦点变成灰色:是下面那个aaaa,这里标错了

 定义selector

效果:

 

 

 

 

输入完就关闭输入法

                焦点变更监听

                文本变化监听

        对话框

                提醒对话框AlertDialog

编辑界面:

                日期对话框DatePickerDialog

日期样式

隐藏日历

                时间对话框TimePickerDialog

        实战项目:找回密码

                需求描述

                界面设计

                关键代码

数据存储

        共享参数SharedPreferences

                共享参数用法

示例

使用:

对文件进行编辑

演示:

查看文件已经保存成功:

 获取文件:

运行即可读出:

                实现记住密码功能

        数据库SQLite

                SQL的基本语法


                数据库管理器SQLiteDatabase

                数据库SQLite

 

 界面:

                数据库帮助器SQLiteOpenHelper

界面:

创建pojo:

插入 

 

提示工具: 

 

 

 

数据库版本更新的时候执行

数据库升级为2:

调用

                优化记住密码功能

        存储卡的文件操作

外部空间中,自己的私有空间卸载后就会被删除

实例 

 保存sb文件:

保存目录

 读取文件:

 使用外部权限

 

外部空间

 

 

                私有存储空间与公共存储空间

                在存储卡上读写文本文件

                在存储卡上读写图片文件

创建一个活动:点保存就将图片保存到sd卡上,点读取就将图片读取出来

编写保存按钮功能

 

读取图片:返回一个bitmap前端显示

 运行:

保存成功

 保存路径

 点击读取

第二种读取方式

三种方式

        应用组件Application

                Application的生命周期

我们没有指定使用的就是默认的application

我们自己创建一个“

” 

指定我们的application

修改主activity运行:

 onTerminate在生产环境中不会被调用

使用application: 

 创建一个activity:
放入参数

读取参数

 运行:

保存信息

退出再进来是有数据的:

如果进程结束就会结束掉application

 再进去是不会加载信息的:

每个app最大一百m

                利用Application操作全局变量
                利用Room简化数据库操作

 

在之前我们查询需要游标来确定查询位置

 

添加依赖

增加界面:

构建实体类

 

编写dao层:

 

指定schema生成文件的地方:

 

        实战项目:购物车

                需求描述
                界面设计
                关键代码

内容共享

        在应用之间共享数据

                通过ContentProvider封装数据

使用场景获取短信、通讯录


                通过ContentResolver访问数据

首先我们创建一个客服端一个服务端

效果:在客户端输入内容,在服务端操作数据库:

创建一个provider

添加配置:authorities是我们的访问入口

 使用之前的dbhelp创建数据库用:

获取db连接

增加:data_path表名 

 查询

客户端代码:

界面: 

绑定按钮:

 访问服务端需要用到

封装一个url对应server的url

 点击保存直接保存到server中去:

查询 修改配置文件

发布运行;

发布server

发布provider就起来了(应用启动就创建):我们后面可以把一些配置文件写在这里(内存检查)

 启动客户:点击保存:保存成功

 插入执行成功:

点击读取成功:

删除

        使用内容组件获取通讯信息

                运行时动态申请权限

                利用ContentResolveri读写联系人

                利用ContentObserver监听短信

        在应用之间共享文件

                使用相册图片发送彩信

                借助FileProvider发送彩信

                借助FileProvider安装应用

高级控件

        下拉列表

                下拉列表Spinner

实例

spinnerMode两个选择 

效果:

                数组适配器ArrayAdapter

                

编写一个条目:

tools:在代码中运行是没有的,只有在预览才有:

 

 构建数组适配器需要条目以及数据:

 构建数组适配器

 设置适配器

 设置监听

 

对话框模式

修改成 

除了可以加标题,其他都一样:

  

简单适配器SimpleAdapter

 

实例

现在的条目需要一个imageview和一个textView

        列表类视图

                基本适配器BaseAdapter

条目:
               

 

 

 效果:

                 列表视图ListView

条目布局

用之前那个适配器

发布运行:每个条目之间都有分割线,点击后会变成灰色

 不要分割线,间距为0,点击后透明色

 

增加可配置项:

 

创建一个activity:

条目:在原来的基础上加一个button

编写适配器:在之前的基础上加一个按钮

 

效果: 

点击条目要弹出的话,需要关闭向下传递

                网格视图GridView

 实例:

设置两列:

使用之前的条目做条目:

 让gridview展示条目,需要适配器:使用之前的baseAdapt

运行效果: 

 

 

        翻页类视图

                翻页视图ViewPager

实例:创建xml:

 

                翻页标签栏PagerTabStrip

编辑xml: 

 

                简单的启动引导页

        Fragment

                碎片的静态注册

我们现在显示一个这样的界面:上面是一个fragment,下面是一个文本

静态注册上面的文本:

创建fragment

 

 

连接创建的fragment 

效果: 

fragment布局: 

 运行效果:

 查看布局:

  碎片的生命周期:

 

                碎片的动态注册

 创建viewpage

创建动态碎片:

 

 

                改进的启动引导页

原文地址:https://blog.csdn.net/weixin_44795604/article/details/130664197

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11281.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注