- 博客(46)
- 收藏
- 关注
原创 重磅!Android Studio 4.0 稳定版发布了
前言Android Studio 4.0(2020年5月) 更新啦,此版本包含了各种新功能和改进,还有一些废弃配置。重要提示:更新后,需要重新启动 Android Studio 才能应用从早期版本的 IDE 迁移的所有内存设置。有关更多信息,请参见已知问题页面。一、Android Gradle 插件 4.0.0最新版本的 Android Gradle 插件包含许多更新,例如 Java 8 对较旧版本的 Android 功能上的依赖项进行了更新。要了解更多信息可阅读【完整的Androi..
2020-06-03 07:51:32
1039
原创 删库不必跑路,谈数据库删除设计
# 常见删除策略凡是做业务逻辑系统, 总是离不开对删除逻辑的处理.本文论述重点是伪删除, 即字段标示状态, 这是在一些中小型系统开发中的单据等较重要数据的主流做法.但在此之前, 不妨先将常见删除策略列举一下:1、数据库设置级联这个我没太懂是怎么回事, 不过网上也说缺点较多, 很少用到, 在此就不考虑了2、触发器控制 -- 本文所写sql默认数据库均为mysqlCREATE TRIGGER `tg_bf_inse...
2020-06-03 07:46:38
287
原创 你知道为什么Java的main方法必须是public static void?
Main 方法是我们学习 Java 编程语言时知道的第一个方法,你是否曾经想过为什么 main 方法是 public、static、void 的。当然,很多人首先学的是 C 和 C++,但是在 Java 中 main 方法与前者有些细微的不同,它不会返回任何值,为什么 main 方式是 public、static、void,这篇文章尝试去找到一些答案。Main 方法是 Java 程序的入口,记住,我们这里不会讨论 Servlet、MIDlet 和其他任何容器管理的 java 程序,在 java 核.
2020-06-03 07:43:02
204
原创 免费API接口分享
前言各类无次数限制的免费API接口整理,主要是聚合数据上和API Store上的一些,还有一些其他的。聚合数据提供30大类,160种以上基础数据API服务,国内最大的基础数据API服务,下面就罗列一些免费的各类API接口。手机号码归属地API接口:https://www.juhe.cn/docs/api/id/11历史上的今天API接口:https://www.juhe.cn/docs/api/id/63股票数据API接口:https://www.ju...
2020-06-03 07:40:01
944
原创 adb常用命令
Android中使用adb命令的时候还是蛮多的,自己的记性不太好,干脆写下来,就当做笔记好了...1、安装PC上面的apk文件到模拟器上面:adb install (apk在PC上的全路径).apk (将apk文件上传到了模拟器的data/app目录下了)...
2019-07-20 19:44:36
114
原创 Genymotion模拟器:Installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBLE.
使用Genymotion模拟器时出现:Installation failed with message INSTALL_FAILED_CPU_ABI_INCOMPATIBLE.
2017-06-05 19:57:15
1069
2
原创 OkHttp全面解析
据说Android4.4的源码中可以看到HttpURLConnection已经替换成OkHttp实现了。所以我们更有理由相信OkHttp的强大。
2017-04-03 14:47:58
444
原创 自定义view之继承控件
前面两篇文章已经把组合控件和自绘控件介绍了,咱们这一次就来看看继承控件的关键点!继承控件就是继承已有的控件,创建新控件,保留继承的父控件的特性,并且还可以引入新特性。下面就以支持横向滑动删除列表项的自定义ListView的实现来介绍。1、创建删除按钮布局delete_btn.xml,这个布局是在横向滑动列表项后显示的页面效果:<Button xmlns:android="
2017-01-14 14:51:18
334
原创 自定义View之自绘控件
好的,同志们,咱们上一章讲过了组合控件,这一次,我们看看自绘控件的情况! 自绘控件的内容都是自己绘制出来的,在View的onDraw方法中完成绘制。下面就实现一个简单的计数器,每点击它一次,计数值就加1并显示出来。1、创建CounterView类,继承自View,实现OnClickListener接口:public class CounterView extends V
2016-12-29 15:51:55
372
原创 自定义View之组合控件
Android基础之自定义View博主感觉以前学习过和用过的东西好像很快又忘记了,为了向大神们看齐,最主要还是为了自己以后方便查看和回忆,打算用博客把它们记录下来,也希望自己的技术可以通过一点点的积累,慢慢向一名真正的程序员高手靠近,嘿嘿嘿......,毕竟希望还是有的嘛,像咱们这种咸鱼也有可能会翻身嘛!对不对! 好的,我们开始吧!在咱们Android里面,自定
2016-12-29 15:22:12
348
原创 打造RecyclerView的万能适配器
public class RecyclerViewHolder extends RecyclerView.ViewHolder { private SparseArray mViews;//集合类,layout里包含的View,以view的id作为key,value是view对象 private Context mContext;//上下文对象 public Recyc
2016-09-18 15:35:17
469
原创 支持下拉加载刷新的RecyclerView
主要代码片段:public class PullToRefreshRecyclerView extends PullToRefreshBase { private RecyclerView mRefreshableView; public PullToRefreshRecyclerView(Context context) { super(context);
2016-09-18 15:27:57
515
原创 greendao数据库框架
添加依赖: compile 'org.greenrobot:greendao:2.2.1'首先建一个模块,新建一个包,用来存放待会自动生成的类(代码)然后,新建一个纯JAVA的依赖模块(具体操作,看文档):新建一个JAVA类:public class DaoCen { public static void main(String[]args)
2016-07-17 17:10:00
671
原创 自定义ScrollView,实现导航条悬浮置顶
Android ScrollView向上滑动控件顶部悬浮效果实现* 导航栏实现悬浮置顶效果(顶部图片隐藏,下面的单选框导航悬浮)【上滑停靠顶端的悬浮框】里的实现方法是使用两个控件,滑动时,监听ScrollView的滚动Y值,* 从而通过对两个控件的显示隐藏来实现控件的顶部悬浮。但是实际应用场景中,* 有可能需要悬浮的控件里面的内容是比较多的,如果通过显示隐藏的方式来实现的话,* 操作控
2016-07-17 16:45:07
4129
原创 CoordinatorLayout协调布局,实现悬浮导航条
首先添加依赖:compile 'com.android.support:design:23.0.0'布局文件: 关键属性(组件可以隐藏)[布局]:fuck:layout_scrollFlags="scroll|enterAlwaysCollapsed" 关键点:解决ListView嵌套在其他布局里面,有可能只显示一行,需要重写onMeasure方法!
2016-07-17 16:32:08
1560
原创 WebView的简单使用
package com.example.administrator.webview;import android.graphics.Bitmap;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.KeyE
2016-07-10 16:57:54
347
原创 JSON快速转换为JAVA对象
JSON文件:{"Json解析":"支持格式化高亮折叠","支持XML转换":"支持XML转换Json,Json转XML","Json格式验证":"更详细准确的错误信息"{ "data":[ { "id":"8195", "title":"饮茶的禁忌(下)", "source":"原创"
2016-07-04 11:20:01
901
原创 Service服务
服务Service,四大主键之一:首先继承Service类,重写父类的onBind方法,绑定服务时会调用,返回IBinder(接口)对象!Binder是接口的实现类>根据需求,可以继承Binder类,然后把对象返回就可以了public class MyService extends Service { @Nullable @Override
2016-07-03 20:40:59
386
原创 BroadcastReceiver广播接收者
动态注册和静态注册两种方法,动态注册是程序运行时才接收广播,静态注册不管程序是否运行,都会接收广播!! 如果是接收系统的广播,很多都是需要加上权限的!!! 首先需要继承BroadcastReceive类,重写父类的onReceive方法,当发送广播时就会调用该方法:public class MyBroadcast extends BroadcastReceiv
2016-07-03 20:05:22
320
原创 ViewPager与底部小圆点的联动
布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=
2016-07-02 19:31:34
467
原创 butterknife框架的使用
1、为什么要使用ButterKnife(黄油刀)?2、避免重复写findviewbyid()来绑定view,使代码简洁明了;3、简单的点击长按事件,不需要设置setonclicklistener();这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义
2016-07-01 19:20:48
632
原创 zxing框架扫描和生成二维码
google的zxing作为开源的二维码支持库生成二维码需要添加权限:uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">uses-permission>uses-permission android:name="android.permission.READ_EXTERNA
2016-07-01 19:03:43
746
原创 Fresco框架SimpleDraweeView控件的简单使用
首先把网络、SD卡的读写权限添加上: 添加依赖,好像版本太高不支持GIF类型的动态图????compile 'com.facebook.fresco:fresco:0.9.0' private SimpleDraweeView simple;//控件 @Override protected void onCreate(Bundle sav
2016-06-29 20:07:19
20459
原创 okhttp网络请求框架
* okhttp是非常高效的网络请求,它是基于http/http2。* * 1、允许同一主机的所有请求共享一个socket* 2、减少网络请求时间Connection pooling reduces request latency (if HTTP/2 isn’t available).* 3、使用gzip压缩,缩小下载大小。* 4、响应缓存避免了网络重复请求* 5、断线重连,多地址请
2016-06-28 21:37:45
754
原创 Volley网络框架的简单使用
Volley网络框架 compile 'com.android.volley:volley:1.0.0' 1. 创建一个RequestQueue(请求队列)对象。 2. 创建一个StringRequest(字符串请求)对象。 3. 将StringRequest对象添加到RequestQueue里面。public class MainActivity extends AppCompa
2016-06-28 13:01:14
697
原创 图片的三级缓存
添加各种需要的权限 -->uses-permission android:name="android.permission.INTERNET">uses-permission>网络//SD卡的写和读的权限uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">uses-permission>use
2016-06-27 08:46:36
291
原创 自定义ListView,实现下拉刷新,上拉加载
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <Ima
2016-06-27 08:28:58
710
原创 自定义EditText编辑框
package com.example.administrator.app3;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;
2016-06-27 08:26:23
502
原创 自定义View
XML文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout
2016-06-27 08:18:34
485
原创 DrawerLayout抽屉控件
XML文件<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:lay
2016-06-27 08:14:19
333
原创 android中的资源使用
自定义资源和资源访问 字符串(string)资源 /res/values/string.xml(可以添加字符串) * 自定义字符串 * * 尺寸(dimens)资源 /res/values/dimens.xml(可以添加尺寸) * 16dp(自定义大小) * * 颜色(color)资源 /res/values/(创建一个color.xml文件) * 根元素
2016-06-27 07:59:06
243
原创 安卓中的XML解析
pull解析public static List getList(String xmlStr) {// 解析XML文件的方法,返回Newslist对象的集合 List list = null; try { // XML解析器工厂实例 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); /
2016-06-27 07:54:32
255
原创 FAST解析JSON
fast解析json文件 * 阿里巴巴的jar * * 总结: * 1、有操作json文件的JSONObject对象类和JSONArray数组类 * * 2、 JSON类静态方法比较多,可以把java对象转换为json对象(需要强转)和json格式的字符串 * 可以把json格式的字符串转换为java的对象 -------
2016-06-26 16:16:24
759
原创 GSON解析JSON
使用谷歌的gson解析json * 谷歌的gson.jar * * 总结: * 1、Gson类对象中可以添加json文件的对象类型和数组类型 * 2、可以把json文件转换为java的对象(包括集合),或者java的对象(包括集合)转换为json格式的字符串 * 需要实现TypeToken泛型接口,调用getType()方法,并且给出需要转换的具体类型 *
2016-06-26 16:14:40
588
原创 ORG的JSON解析
org解析JSON文件 * * 总结: * 1、org中提供了两个主要的类用来操作json中的对象和数组格式 * JSONObject对象类和JSONArray数组类 * 2、json对象和java对象之间可以相互转换(比较麻烦) * 3、解析数据,可以通过json的key值去获取对应的value值 * * 附注:JSONTokener类可以通过IO流去解析jso
2016-06-26 16:09:59
657
原创 子线程加载数据
package com.example.a05273;import java.io.File;import android.app.Activity;import android.app.AlertDialog;import android.content.ContentResolver;import android.content.ContentUris;import andro
2016-06-25 21:52:14
485
原创 LoaderManager访问SD里面的数据库
首先,需要在项目清单文件中加上访问SD卡的权限: android.permission.WRITE_EXTERNAL_STORAGEpublic class MainActivity extends FragmentActivity { private String url="content://com.mma/student/";//uri private ContentResolv
2016-06-25 21:48:49
428
原创 通过异步任务LoaderManager加载Cursor游标
这里我们再来对客户端进行研究:package com.example.a05271;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.support.v4.ap
2016-06-25 21:45:34
536
原创 ContentProvider内容提供商的简单使用(下)
上一篇文章,我们说到了自定义一个内容提供商,那么这一次,我们从客户端的角度来访问服务端的数据,并且进行操作(查、增、删、改)//首先,自定义一个操作数据库的工具类/** * 客户端 * 访问服务端的数据库,并且可以进行增、删、改、查的操作 * 数据库就在这里............... */public class MainActivity extends Ac
2016-06-25 21:36:41
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人