自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

犟驴的博客

"一名优秀的软件工程师,了解优秀软件设计的演变过程比学习优秀设计本身更有价值,因为设计的演变过程中蕴藏着大智慧啊。"-《重构与模式》

  • 博客(73)
  • 资源 (7)
  • 收藏
  • 关注

原创 CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout+NestedScrollView实现上下滑动悬停效果

这张图解析上面几个控件的关系: 转载:https://www.jianshu.com/p/1f3974408528   CoordinatorLayout配合AppBarLayout、CollapsingToolbarLayout、Toolbar使用转载:https://blog.csdn.net/feather_wch/article/details/80021699   载:htt...

2018-10-31 18:28:15 6816 1

原创 android EditText setOnEditorActionListener的使用(回车不换行)

 点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往”而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”而决定这个图标的变换的参数就是EditText中的 android:imeOptionsandroid:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等,这些意思都很明显...

2018-10-29 10:32:02 1423

转载 Android ListView批量选择(全选、反选、全不选)

转载:https://blog.csdn.net/zuiwuyuan/article/details/50042841?utm_source=blogxgwz0 APP的开发中,会常遇到这样的需求:批量取消(删除)List中的数据。这就要求ListVIew支持批量选择、全选、单选等等功能,做一个比较强大的ListView批量选择功能是很有必要的,那如何做呢?        可想而知,要支持...

2018-10-27 22:32:55 3280

转载 android checkbox 未选中状态 已选中状态 替换成自己的图片

转载:https://www.cnblogs.com/zsychanpin/p/6837900.html效果图:未选中状态:选中状态: 使用步骤:1.创建自己的selector<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.andro...

2018-10-27 22:29:12 5236

原创 原 Android进阶:步骤三:Android常用框架:OkHttp网络操作框架

Okio & OkHttp课程目标 掌握I/O操作的方法  掌握传输数据的方法学习内容Okio简介  Okio的核心类  OkHttp简介  OkHttp核心类  代码实践一、Okio简介什么叫IO?比如说你的硬盘上有一个文件in.txt你想把它拷贝到另一个文件里去然后你要写一段程序,运行这段程序计算机把这段程序加载带内存当中...

2018-10-26 21:49:33 516 2

原创 线程池

一、线程池简介线程池线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后 自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默 认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待 某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程 池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时...

2018-10-26 20:26:40 129

原创 Android进阶:步骤三:Android常用框架:OrmLite数据库框架

Orm(对象关系模型)OrmLite框架介绍 对比主流的Orm框架 OrmLite基本用法一、OrmLite 框架介绍:Ormlite 框架是第三方对数据库操作的封装的一个框架,为了提高开发效率,尤其是对某些 数据库操作特别频繁的 app,建议使用 OrmLite 框架。它是一个非常轻量级的数据库操作框架, 它的底层是根据反射机制来实现的。Why OrmLite? 大多...

2018-10-25 22:12:42 1735 2

转载 设置Android软键盘的默认不弹出

转https://blog.csdn.net/forwordlove/article/details/52453311方法一:在OnCreate()函数中,加上下面的代码getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);方法二:在AndroidManifest.xml中...

2018-10-25 12:44:09 2706 1

原创 ContentProvider+ExpandableListView的结合

任务描述1. 安装已提供的含ContentProvider的菜单app(menudemo.apk)2. 在自己的程序中访问ContentProvider(authorities是com.imooc.menuprovider,获取菜单数据,模拟手风琴效果进行布局(如图)3.长按子项,弹出提示框 询问是否确定删除,选择【是】则删除,菜品能及时更新,否则不操作点击新增,则进入新增页面,在次页...

2018-10-24 23:14:40 270 7

原创 Spinner 下拉框的基本使用

一、 Spinner 是什么?Spinner 下拉框的基本使用在 Android 开发中通常使用 Spinner 控件来实现下拉框的效果。Spinner 提供了从一个数据 集合中快速选择一项值的办法。默认情况下 Spinner 显示的是当前选择的值,点击 Spinner 会弹 出一个包含所有可选值的 dropdown 菜单,从该菜单中可以为 Spinner 选择一个新值。二、 Spin...

2018-10-24 14:48:24 763

原创 利用ContentProvider读取系统应用的信息(短信和联系人)

上面两篇我们讲了ContentProvider如何使用Android进阶:步骤2:ContentProvider初体验https://blog.csdn.net/qq_17846019/article/details/83313922Content Provider 解析URI的方法 UriMatcher的用法和自带的解析方法https://blog.csdn.net/qq_178...

2018-10-24 12:54:35 2419 1

转载 Content Provider 解析URI的方法 UriMatcher的用法和自带的解析方法

原文:https://blog.csdn.net/herbert5069/article/details/7212675 Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher和ContentUris.UriMatcher 类的概要描述这是一个在 content provider 中帮助匹配 URIs 的实用类。ContentProvider是Android四...

2018-10-24 08:32:22 3295

原创 Android进阶:步骤2:ContentProvider初体验

ContentProvider1.ContentProvider简介Android四大组件之一,为存储和获取数据提供统一的接口。可以在不同的应用程序之间共享数据。ContentProviders 管理访问结构化的数据集。它们可以封装这些数据,并且为定义安全的数据提供机制。Contentproviders 是标准的接口,它能将一个线程中的数据 与其他线程中的运行的代码进行连接...

2018-10-24 08:29:45 503

原创 ExpandableListView的使用2:ExpandableListView+SQLite+Json解析+网络下载

上一篇文章讲述了ExpandableListView的基本使用https://blog.csdn.net/qq_17846019/article/details/83276920案例2之下的复杂案例的实现:基于网络,SQLite、json数据的ExpandableListView的实现先了解几个概念Biz:(业务逻辑层)biz是Business的缩写,实际上就是控制...

2018-10-23 19:04:49 448

转载 Android进阶:手风琴特效—步骤2: ExpandableListView(可拓展的ListView)

ExpandableListView的基本介绍作者:CnPeng转https://www.jianshu.com/p/05df9c17a1d81 什么是ExpandableListView?有啥作用?首先看一张ExpandableListView 的继承关系图:ExpandableListView的继承关系一种用于垂直滚动展示两级列表的视图,和 ListView 的不同之...

2018-10-23 18:14:19 905

转载 SQLiteOpenHelper中的getWritableDatabase和getReadableDatabase会的区别

作者:doMyselfzy链接:https://www.jianshu.com/p/a5a60451e886SQLiteOpenHelper中的getWritableDatabase和getReadableDatabase会的区别1. 两个方法干嘛的?两个方法都是用于获取数据库的读写对象,并不是字面上一个获取读取数据库的对象,另一个获取写数据库的对象。2. getWritable...

2018-10-23 16:42:03 1063

原创 Android进阶:Android数据库操作—步骤2: SQLite数据库

1. Sqlite 简介Sqlite 是一种轻量级,零配置的,可嵌入的程序驱动型的二进制文件,同时也是一种 关系型数据库。SQLite 是一个开源的关系型数据库,实现自包容、零配置、支持 事务的SQL数据库引擎。其特点是高度便携、使用方便、结构紧凑、 高效、可靠。鉴于 Sqlite 数据库的这些优点,现在流行的操作系统 Android 和 ios都选择使用 Sqlite 作为数据存...

2018-10-22 14:07:54 534 1

原创 文件存储

1、外部存储作为一个开发者,我们经常需要通过缓存一些文件到 SD 卡中,常见的方式就是,通过:File sdCard = Environment.getExternalStorageDirectory();获取 SD 卡根目录,然后自定义文件/文件名进行文件存储,这样做法的结果就是,当手机 安装了大量的 app 时,SD 卡根目录会迅速变得杂乱不堪,并且在 API 6.0 之后,...

2018-10-21 14:42:51 116

原创 Android进阶:android本地数据操作—步骤2:Android本地文件操作

本地数据存储Android常用数据存储1. SharedPreferences存储数据 2. 文件存储(内部,外部) 3. SQLite数据库存储 4. ContentProvider存储数据 5. 网络存储数据一、SharedPreferences存储数据 SharedPreferences•用于存放一些类似登录的配置信息• 本质上是一个xml文件,是通过类似键值...

2018-10-21 14:13:47 1053

原创 android6.0读写权限要在动态申请权限

一、读写文件的时候要获取权限1.在AndroidManifest.xml中声明权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERN...

2018-10-21 11:52:18 4915

转载 17-Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition

Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition原文链接:http://www.cnblogs.com/dolphin0520/p/3920385.html  在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内...

2018-10-16 13:05:05 104

转载 16-Java并发编程:Timer和TimerTask(转载)

Java并发编程:Timer和TimerTask(转载)  下面内容转载自:  http://blog.csdn.net/xieyuooo/article/details/8607220  其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样:Timer timer = new Time...

2018-10-16 13:05:01 104

转载 14-Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore原文链接:http://www.cnblogs.com/dolphin0520/p/3920397.html  在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类...

2018-10-16 13:04:57 101

转载 11-Java并发编程:并发容器之CopyOnWriteArrayList(转载)

Java并发编程:并发容器之CopyOnWriteArrayList(转载)  原文链接:  http://ifeve.com/java-copy-on-write/    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延...

2018-10-16 13:04:52 121

转载 10-Java并发编程:并发容器之ConcurrentHashMap(转载)

Java并发编程:并发容器之ConcurrentHashMap(转载)  下面这部分内容转载自:  http://www.haogongju.net/art/2350374  JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,...

2018-10-16 13:04:46 176

转载 12-Java并发编程:阻塞队列

Java并发编程:阻塞队列原文链接: http://www.cnblogs.com/dolphin0520/p/3932906.html  在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞...

2018-10-16 13:04:40 99

转载 9-Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法原文链接:http://www.cnblogs.com/dolphin0520/p/3933551.html  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我...

2018-10-15 11:15:22 118

转载 8-Java并发编程:同步容器

Java并发编程:同步容器原文链接:http://www.cnblogs.com/dolphin0520/p/3933404.html  为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。  以下是本文的目录大纲:  一.为什么会出现...

2018-10-15 11:15:15 129

转载 5-Java并发编程:Lock

Java并发编程:Lock原文链接:http://www.cnblogs.com/dolphin0520/p/3923167.html  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。  也许有朋友会...

2018-10-15 11:15:10 115

转载 4-Java并发编程:synchronized

Java并发编程:synchronized  虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。  以下是本文的目录大纲:  一.什么时候会出现线程安全问题?  二.如何解决线程安全问题?  三.sy...

2018-10-15 11:15:05 95

转载 2-Java并发编程:如何创建线程?

Java并发编程:如何创建线程?原文链接:http://www.cnblogs.com/dolphin0520/p/3913517.html  在前面一篇文章中已经讲述了在进程和线程的由来,今天就来讲一下在Java中如何创建线程,让线程去执行一个子任务。下面先讲述一下Java中的应用程序和进程相关的概念知识,然后再阐述如何创建线程以及如何创建进程。下面是本文的目录大纲:  一.Java...

2018-10-15 11:15:00 103

转载 3-Java并发编程:Thread类的使用

Java并发编程:Thread类的使用原文链接:http://www.cnblogs.com/dolphin0520/p/3920357.html  在前面2篇文章分别讲到了线程和进程的由来、以及如何在Java中怎么创建线程和进程。今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态、上下文切换,然后接着介绍Thread类中的方法的具体使用。...

2018-10-15 11:14:54 118

转载 1-Java并发编程:进程和线程之由来

Java多线程基础:进程和线程之由来原文地址:http://www.cnblogs.com/dolphin0520/p/3910667.html  在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前...

2018-10-15 11:14:48 91

转载 14-Java:类与继承

Java:类与继承原文链接:http://www.cnblogs.com/dolphin0520/p/3803432.html  对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础。抽象、封装、继承、多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识。首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性。...

2018-10-15 11:14:41 169

转载 11-java 字节流和字符流的区别 转载

转载自:http://blog.csdn.net/cynhafa/article/details/6882061java 字节流和字符流的区别字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。 下面以两个写文件的操作...

2018-10-15 11:14:36 196

转载 10-Java输入输出流

1.什么是IO      Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。        Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,Java也...

2018-10-15 11:14:28 181

转载 9-Java 如何有效地避免OOM:善于利用软引用和弱引用

Java 如何有效地避免OOM:善于利用软引用和弱引用原文链接:http://www.cnblogs.com/dolphin0520/p/3784171.html  想必很多朋友对OOM(OutOfMemory)这个错误不会陌生,而当遇到这种错误如何有效地解决这个问题呢?今天我们就来说一下如何利用软引用和弱引用来有效地解决程序中出现的OOM问题。下面是本文的目录大纲:  一.了解 强引...

2018-10-14 10:12:24 91

转载 8-深入剖析Java中的装箱和拆箱

深入剖析Java中的装箱和拆箱原文链接: http://www.cnblogs.com/dolphin0520/p/3780005.html  自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。  以下是本文的目录大纲:  一.什么是装箱?什么是拆...

2018-10-14 10:12:20 110

转载 7-探秘Java中的String、StringBuilder以及StringBuffer

探秘Java中String、StringBuilder以及StringBuffer  相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问到的地方,今天就来和大家一起学习一下String、StringBuilder和StringBuffer这几个类,分析它们的异同点以及了解各个类适用的场景。下面是本文的目录大纲:  一.你了解String类吗?  二.深入...

2018-10-14 10:12:16 100

转载 6-Java异常处理和设计

Java异常处理和设计转载地址:http://www.cnblogs.com/dolphin0520/p/3769804.html  在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影响到整个项目的代码质量以及后期维护成本和难度。试想一下,如果一个项目从头到尾没有考虑过异常处理,当程序出错从哪里寻找出错的根源?但是如果一个项目异常处理设计地过多,又会严重...

2018-10-14 10:12:11 132

platforms/android-28/android.jar

替换sdk路径下/platforms/android-28/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换as后报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform

2020-05-25

platforms/android-29/android.jar

替换sdk路径下/platforms/android-29/android.jar,能够解决在android studio 看源码部分类报红及能够正常编译项目。解决替换后报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform

2020-05-25

sources/android-28

sources/android-29,提供给大家,方便大家下载,如果无法满足,请自行搜索其他下载方式

2020-05-25

android-29.zip

sources/android-29,提供给大家,方便大家下载,如果无法满足,请自行搜索其他下载方式

2020-05-25

platforms/android-28

platforms/android-28,提供给大家,方便大家下载,如果无法满足,请自行搜索其他下载方式

2020-05-25

android-29.zip

android sdk/platfroms/android-29,提供给大家,方便下载,如果无法满足,请自行搜索其他下载方式。

2020-05-25

expandableListViewDemo

基于ExpandableListView、SQLite、网络下载,Json解析

2018-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除