自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Android RecyclerView 中多Item的EditText焦点混乱,数据错乱的解决方法(更新)

最近在做毕业设计,使用了RecyclerView来做了以下个人资料的编辑界面。RecyclerView中包含了多种不同的Item,例如图片里面的 姓名,公司,部门,职位,邮箱的Item 里面都包含一个EditText。 RecyclerView中EditText的监听处理这个界面的主要逻辑是监听每个EditText的输入,然后保存到个人对象里,最后保存到服务器上。RecyclerView中Item

2016-11-28 10:19:12 15832 4

原创 Android PopupWindow 使点击区域外不消失

默认的popupWindow点击区域外会使popupWindow自动dismiss,如果有一个点击区域外使popupWindow不自动dismiss的需求,该怎么办呢?首先来看popupWindow的两个重要的boolean属性mFocusable和mOutsideTouchable。 mFocusable是用来判断当前的popupWindow是否获取焦点,可以通过setFocusable(boo

2016-11-26 19:05:10 22901 6

原创 Android 设置TextView字体Color Selector的正确方式

首先区分drawable目录下和color目录下的selector区别。 drawable目录下主要是设置android:drawable属性的,主要用来设置图片和背景色的,没有android:color属性。 color目录下主要是用来设置android:color属性的,主要是用来设置颜色方法的。使用时必须自己在res目录下创建一个color文件夹,然后在里面创建颜色selector文件

2016-11-23 19:01:06 7526 2

原创 Android中实现全屏的 三种方式

1AndroidManifest.xml中配置activity的Theme这种情况下activity必须继承自Activity,而不能是AppCompatActivity,因为AppCompatActivity中并不支持 Theme.NoTitleBar.Fullscreen 这个主题。 <application android:allowBackup="true"

2016-11-23 09:01:29 2129

原创 Android Studio Git版本管理 配置

Git安装Git官方下载地址: http://git-scm.com/download/ 下载后安装到个人指定目录,之后的安装配置要求全部按默认值安装。Android Studio Git配置1首先打开Android Studio,然后打开你的项目,点击左上方的File - Setting 2打开Setting 选择Version Control - Git 选择Path to Git e

2016-11-22 20:34:13 848

原创 Android Git 版本控制初识

版本控制版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定项目版本的系统。通过版本控制系统,可以为每个版本创建一个快照,并且填写相关的记录信息,这样便于你后续回退到这个版本。而你所有的修改,提交都会在版本系统中留下记录,这样就有更多的信息能够定位特定的版本。初识GitGit属于分布式版本控制系统,是目前世界上最先进的分布式版本控制系统,它的特点是简单易用,功能强大,速度快。分布式相比于集中式

2016-11-22 20:02:48 338

原创 算法-希尔排序

Shell排序算法 Shell排序算法严格来说是基于插入排序的思想,其又称为希尔排序或者缩小增量排序。排序流程 1将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对,·····。 2一次循环使每一个序列对排好顺序。 3然后,再变为n/4个序列,再次排序。 4不断重复上述过程,随着序列减少最后变为一个,也就完成了整个排序。 注:有余数

2016-11-09 19:42:52 262

原创 算法-归并排序

归并排序 归并排序算法就是将多个有序数据表合并成一个有序数据表。 如果参与合并的只有两个有序表,则称为二路归并。 对于一个原始的待排序序列,往往可以通过分割的方法来归结为多路归并排序。基本思路 首先将含有n个结点的待排序数据序列看作由n个长度为1的有序子表组成,将其依次两两合并,得到 长度为2的若干有序子表;然后,再对这些子表进行两两合并,得到长度为4的若干有序子表……

2016-11-09 19:39:47 258

原创 算法-堆排序

堆排序算法 堆排序算法是基于选择排序思想的算法,其利用堆结构和二叉树的一些性质来完成数据的排序。 堆排序的关键是首先构造堆结构。堆结构是一种树结构,准确来说是一个完全二叉树。 在这个树中每个结点对应于原始数据的一个记录,并且每个结点应满足以下条件:(最小堆,最大堆) 1如果按照从小到大的顺序排序,要求非叶结点的数据要大于或等于其左,右子结点的数据。 2如果按照从大到小的顺

2016-11-09 19:34:57 826

原创 算法-快速排序

快速排序 快速排序算法和冒泡排序算法类似,都是基于交换排序思想的。快速排序算法对冒泡排序算法进行了改进,从而具有更高的执行效率。 快速排序算法通过多次比较和交换来实现排序。排序流程 1首先设定一个分界值,通过该分界值将数组分成左右两部分。 2将大于等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于等于分界值,而右边部分中各元素都大于等

2016-11-09 19:31:27 321

原创 算法-插入排序

插入排序## 标题 ## 插入排序算法是通过比较和插入来实现排序的。 思路:通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。排序流程 1首先对数组的前两个数据进行从小到大的排序。 2接着将第3个数据与排好序的两个数据进行比较,将第3个数据插入合适的位置。 3然后,将第4个数据插入已排好序的前3个数据中。 4不断重复上述过程,直到把最后一个数据插入合适的位置。最

2016-11-09 19:28:07 278

原创 算法-选择排序

选择排序 选择排序算法是通过选择和交换来实现排序的。 思路:选择排序算法在每一步中选取最小值来重新排列,从而达到排序的目的排序流程 1首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。 2接着从剩下的n-1个数据中选择次小的1个数据,将其和位于第2个位置的数据交换。 3然后不断重复上述过程,直到最后两个数据交换完成。至此,便完成了对原始数组的从小到大的排序。

2016-11-09 19:24:41 230

原创 算法-冒泡排序

冒泡排序 冒泡排序算法是通过多次比较和交换来实现排序 思路:交换排序,通过相邻数据的交换来达到排序的目的排序流程 1对数组中的各数据,依次比较相邻的两个元素的大小 2如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,便可将最小的数据排好。 3再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据public class Bud

2016-11-09 19:22:25 526

原创 设计模式-工厂方法模式

工厂方法模式的定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 在工厂模式中,抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义; Creator为抽象创建类,也就是抽象工厂,具体如何创建产品类是由具体的实现工厂ConcreteCreator完成的。优点1.良好的封装性,代码结构清晰。一个对象创建是有条件约束的,如一个调用者需要一个

2016-11-09 13:42:50 341

原创 Android 检测内存泄漏方法总结

Memory Monitor使用Memory Monitor实时获取应用内存使用情况DDMS工具下的Heap收集更新关于内存泄漏信息和其他内存相关问题的工具是Android Device Monitor的DDMS工具下的Heap。Heap工具能够通过显示系统为你分配了多少内存来帮助你诊断内存泄漏问题。提供了许多关于应用堆内存使用情况的数据,包含APP内分配的各种对象,分配的对象数量以及这些对象占用了

2016-11-04 08:57:39 816

原创 Java 面向对象三大特性总结

继承继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段。封装通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。多态多态性是指允许不同子类型的对象对同一消息作出不

2016-11-04 08:54:45 441

原创 Java 面向对象六大原则总结

(1)单一职责原则定义:应该有且仅有一个原因引起类的变更。注意:单一职责原则要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,它就负责一件事件。 一个类实现了两个接口,把两个职责融合在一个类中。(组合模式)。 接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化。(2)里氏替换原则定义:所有引用基类的地方必须能透明地使用其子类的对象。 只要父类能出现的地方子类就可以

2016-11-04 08:51:29 657

原创 设计模式-观察者模式

观察者模式定义观察者模式也叫做发布订阅模式,定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。

2016-11-02 17:15:49 391

原创 Easy:字符串按单词反转

字符串按单词反转

2016-11-02 17:04:13 768 2

原创 Android Broadcast广播总结

Android Broadcast广播总结

2016-11-02 15:32:01 695

原创 AysncTask 源码和底层原理总结

AysncTask 源码和底层原理总结

2016-11-02 15:14:35 587

原创 Android 事件分发机制总结

Android事件分发机制

2016-11-02 14:58:28 543

空空如也

空空如也

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

TA关注的人

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