Android
文章平均质量分 76
Biu_Destiny
某普通的计算机专业大学生
展开
-
关于Android 动态权限获取
关于Android 动态权限获取最近做服务端发送文件给android端的功能,再获取本地读写路径时候,出现了以下报错:java io FileNotFoundException /storage/emulated/0/Download/test.jpg (Permission denied)很明显是权限没给到,但是我的Manifest文件该给的静态权限都已经给了怎么回事呢?查找资料后知道:Google在 Android 6.0 开始引入了权限申请机制,将所有权限分成了正常权限和危险权限。应用的原创 2021-06-08 16:33:03 · 686 阅读 · 2 评论 -
移动应用开发实践-Task16-实现天气预报选择城市
移动应用开发实践-Task16-实现天气预报选择城市目的1.增加下拉功能2.实现指定城市的天气预报显示3.轻量本地化目的1.增加一个下拉刷新功能2.实现指定城市的天气预报显示3.实现轻量级本地化(关闭后再打开会保留最后看的城市)1.增加下拉功能在总的SrollView外套用SwipeRefreshLayout组件 <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/swip原创 2021-04-01 11:05:45 · 415 阅读 · 0 评论 -
移动应用开发实践-Task15-丰富拓展天气预报界面
移动应用开发实践-Task15-拓展天气预报界面目的1.增加近三日天气预报模块2.增加空气质量模块3.最终效果目的增加近三天的天气预报信息UI模块,增加空气质量指数UI模块。1.增加近三日天气预报模块增加模块UI,以及模块ItemUI,最后把模块UI添加到主界面。模块UI<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/原创 2021-04-01 09:45:08 · 244 阅读 · 0 评论 -
移动应用开发实践-Task14-配置一个简易的天气预报界面
移动应用开发实践-Task14-配置一个简易的天气预报界面目的1.创建主要的Layui2.WeatherActivity目的设计一个建议的天气预报UI,如下图:1.创建主要的Layui这里主要是把按钮和两个include把两个细节页面引用(weather_title、weather_now),模块化界面,方便后续操作。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schema原创 2021-03-28 14:57:23 · 624 阅读 · 1 评论 -
移动应用开发实践-Task12&13-输出天气信息的测试
移动应用开发实践-Task12&13-输出天气信息的测试目的1.创建相关类2.配置工具类 WeatherApiUtil3.WeatherActivity的实际调用4.运行结果目的创建两种输出类(空气质量、天气预报)和它们的辅助类,直接做输出测试,看是否能通过url拿到json数据。1.创建相关类两个不同颜色的框对应两种输出类,其余为基础数据类型。主要也就是为了和json传过来的数据类型一一对应而已,不重要。Basic.javapackage com.example.fyn_weat原创 2021-03-28 14:06:50 · 227 阅读 · 0 评论 -
移动应用开发实践-Task11-配置Toolbar和optionMenu
移动应用开发实践-Task11-配置Toolbar和optionMenu目的1.配置Toolbar2.配置opt_menu3.改写MainAcitivity(已改名为SelectCityActivity)4.运行效果目的将搜索、返回、初始化数据库的功能配置到optionMenu中。配置Toolbar的目的是能自定义左上角的标题内容,使之变成我们点击的省份或者显示China。1.配置Toolbar我们现在用的是A系统自动配置的ActionBar,为了不和ToolBar冲突我们要先去掉ActionB原创 2021-03-25 12:02:58 · 364 阅读 · 0 评论 -
移动应用开发实践-Task10-运用AsyncTask初始化城市数据
移动应用开发实践-Task10-关于安卓的异步查询操作目的1.配置GenerateDatabaseTask2.MainActivity中的调用3.修复关于level_0_id的bug4.结果目的在最开始载入guolin中所有中国的城市数据,保存到数据库。1.配置GenerateDatabaseTaskGenerateDatabaseTask是继承AsyncTask的,我们主要重写onPostExecute、onProgressUpdate、doInBackground三个方法。package co原创 2021-03-21 15:53:54 · 144 阅读 · 0 评论 -
移动应用开发实践-Task9-关于安卓的异步查询操作
移动应用开发实践-Task9-关于安卓的异步查询操作目的1.升级CityDataBase2.MainActivity调用异步查询方法目的将之前的查询所有省份、按照parentId查询城市、模糊查询城市的三个方法都通过异步方法封装,放到线程中执行。1.升级CityDataBase1)暴露一个接口,来实现将一个List对象传导到外部调用。 public interface OnQueryFinished { public void onFinished(List<City>原创 2021-03-21 14:30:14 · 134 阅读 · 0 评论 -
移动应用开发实践-Task8-城市数据库模糊查询
移动应用开发实践-Task8-城市数据库模糊查询目的1.改写CityDatabase2.配置CityAdapter3.主函数MainActivity改写目的City增加lookup字段存放对象关键词组合,实现模糊查询数据库。1.改写CityDatabase(1)增加方法generateLookup,生成关键词组合字段。private String generateLookup(City city) { String name = city.getName(); St原创 2021-03-18 12:23:20 · 160 阅读 · 0 评论 -
移动应用开发实践-Task7-城市列表导入数据库
移动应用开发实践-Task7-城市列表导入数据库目的1.编写 CityDatabase2.MainActivity改写目的使用数据库导入浏览到的在线城市列表,实现离线浏览1.编写 CityDatabase主要实现数据库初始化(建表)、打开数据库、结束数据库、导入对象、导入对象列表、重置数据库、通过游标获取对象列表、通过sql语句获取对象列表、查询所有省份等。package com.example.fyn_weather_task8_0.db;import ...public class C原创 2021-03-18 12:00:49 · 114 阅读 · 0 评论 -
移动应用开发实践-Task6-城市列表的层次引导
移动应用开发实践-Task6-城市列表的层次引导目的1.更新City类2.MainActivity3. 运行结果目的设置level用于判断当前列表属于哪一层,并完成各级之间的进入和返回。level显示内容url格式例子level_0显示所有省份http://guolin.tech/api/china北京、上海、天津 …level_1显示某省份所有城市http://guolin.tech/api/china/17杭州、湖州、嘉兴…level_2显示某城市原创 2021-03-14 19:05:36 · 117 阅读 · 0 评论 -
移动应用开发实践-Task5-通过Json获取城市列表
移动应用开发实践-Task5-通过Json获取城市列表目标1.City类2.JsonUtil工具类(核心代码)3.MainActivity调用工具类4.运行结果目标封装一个Json转City类的JsonUtil方法,调用来获得指定url的city列表对象。json数据来源:http://guolin.tech/api/china1.City类在Task4基础上增加了parentId、enName、initialName属性,和相关 get 和 set 方法。public class Cit原创 2021-03-14 13:39:59 · 221 阅读 · 0 评论 -
移动应用开发实践-Task4-pinyin4j汉语插件
移动应用开发实践-Task4-pinyin4j汉语插件目标1.配置pinyin4j(此次测试使用2.5.0版本)2.配置工具类PinyinUtil(本次核心代码)3.新建Activity测试4.运行结果目标测试一下pinyin4j外库官方网站:http://pinyin4j.sourceforge.net/1.配置pinyin4j(此次测试使用2.5.0版本)将原来显示方式的安卓换成Project将pinyin4j的jar包放入app/libs目录下右键jar包入库pinyin4j原创 2021-03-11 14:19:39 · 250 阅读 · 0 评论 -
AndroidStudio 关于安卓项目的复制拷贝 - 防止影响源文件
AndroidStudio 关于安卓项目的复制拷贝 - 防止影响源文件1.在文件管理器中复制粘贴需要拷贝的对象,重命名为你想要的名字2. Import 刚才复制的重命名过的文件(不要open!)3.进入应用结构,修改项目ID3. 清除project4.Refacor文件名5.修改values经常会遇到想备份一个安卓项目,然后在他的克隆上进行添加功能,但是有时候一运行安装就把之前的覆盖了,这个时候要如何处理。1.在文件管理器中复制粘贴需要拷贝的对象,重命名为你想要的名字2. Import 刚才复制的重原创 2021-03-11 13:51:31 · 2134 阅读 · 0 评论 -
移动应用开发实践-Task3-Gson的简单应用
移动应用开发实践-Task3-Gson的基础应用目标:在Task2的基础上,分别使用以下三个方法,将json对象配置为自定义java类。json的单个获取gson的单个获取gson的列表获取Task2链接:https://editor.csdn.net/md/?articleId=114660183Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。1. 配置g原创 2021-03-11 13:25:15 · 129 阅读 · 0 评论 -
移动应用开发实践-Task2-封装HttpUtil
移动应用开发实践-Task2-简单封装OkHttp目标:在Task1的基础上,封装OkHttp的功能性代码做工具类。Task1链接:https://blog.csdn.net/Biu_Destiny/article/details/1146592311.创建Utility目录,新建工具类HttpUtil2.配置HttpUtil主要是创建新的接口,用于使用者自定义回调,这里传参了activity,是因为需要在activity外部方法创建线程,不然到时候直接在MainActivity中调用会出原创 2021-03-11 12:48:36 · 149 阅读 · 0 评论 -
移动应用开发实践-Task1-OkHttp的基础使用
移动应用开发实践-Task1-OkHttp的基础使用目标:获取下图的json对象1.配置OkHttp(这里用的3.8.1版本)implementation 'com.squareup.okhttp3:okhttp:3.8.1'2.做一个简单的获取页面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"原创 2021-03-11 12:24:31 · 206 阅读 · 0 评论