关闭

[置顶] 使用百度音乐盒API接口实现音乐播放器

百度音乐盒提供了一个便捷的API可以拿来访问一些音乐资源,开发者通过访问指定格式的url可以拿到返回的数据,这个数据可以是json或者xml,这里面包含了歌曲的信息。完整的API各种访问格式是非常丰富的,参见http://www.cnblogs.com/liuying1995/p/5704176.html。这里我们只实现查询关键字,得到返回的歌曲列表和百度定义的歌曲的id,然后再使用这个id访问,...
阅读(3606) 评论(2)

Kotlin 构造器和单例模式

class AA{ init { } } 1.这是一个最简单的类,他没有在头部做任何构造器的声明,这时他拥有一个默认的无参构造器,而这个构造器的内容要放在init块中。如果构造器没有操作的话,init可以省略。 如果不想暴露这个构造器,可以在声明时设为private: class AA private constructor() 2.声明带参构造器...
阅读(71) 评论(0)

kotlin委托属性+SharedPreference实例

委托属性就是将一个成员变量委托给一个类管理,这个类需要实现getValue和setValue。换言之,属性将自己的get和set方法委托给了这个类的getValue和setValue。 这种模式适用于简化存取一个值的情况,比如说sharedpreference的操作,原来存取一个值我们需要初始化sp对象然后存取,借助这个委托可以用一行代码实现。 先来看最简单的委托类,只需要实现getV...
阅读(43) 评论(0)

对convertView和ViewHolder的理解

在使用listview和recyclerview的过程中免不了要用到convertview和viewholder,所以理解他们的工作原理还是很有意义的。 首先来看listview的使用,如果要写一个最简单的BaseAdapter的话,那么getView中直接用LayoutInflater根据布局文件生成一个View,然后再获取这个view的子组件设置属性,返回这个view就可以了。但是这...
阅读(40) 评论(0)

Android Studio查看包依赖关系+删除冲突框架版本(如glide)

最近遇到了一个问题,我引入了glide 3.7版本,在使用过程中却发现无法正常使用链式语法设置placeholder和error等,于是我打开项目.idea-->libiraries,发现目录下glide的版本是4.0,很明显,有别的框架依赖了4.0,那么我现在就需要找到这个框架。 1.使用Gradle View查看依赖树: 首先搜索Gradle View插件安装重启。然后View--...
阅读(240) 评论(0)

Android 源码设计模式读书笔记 前四章

一、面向对象六大原则 单一职责原则(SRP):一个类应该只负责一个部分,这个责任的划分并不明确,我的理解就是说不要把应该拆分的功能放在一个类里,从而松耦合,提高扩展性。具体理解还是要结合书上的托片加载器的例子。 开闭原则(OCP):系统对扩展开放,对修改封闭。要在尽量不修改原有代码的基础上对功能进行扩展,也就要求代码有很高的可扩展性。其实这几个原则都是设计模式的共同目标,很多地方都能得到体现。...
阅读(196) 评论(0)

TextView文本可选中

android:textIsSelectable="true"...
阅读(64) 评论(0)

Android Studio开发中途使用gitignore文件进行提交忽略

上回书说道,因为部分文件过大,常常会出现push失败的问题。对于整个安卓项目,需要进行push的部分其实很少,一般来说只有app文件夹和项目gradle文件等。 git使用中有一个gitignore文件,可以通过在这个文件中写入所有想要忽略的文件夹和文件,这样的话被忽略的部分就不会随项目提交和push。这个文件在项目根目录下,叫做.gitignore,没有的话可以自己加上。 但是如果你...
阅读(96) 评论(0)

push was rejected by remote(因部分文件过大)(安卓)

最近项目变大之后Push到码云上的时候遇到了一个问题,如题所示,被拒绝,使用命令行进行push后明白了具体原因,是因为push限制单个文件不大于100M,而我有一个bin文件大于100M了。事实上,我是不需要push这个文件的,只需要push app文件夹,也就是代码部分。 其实常见的思路是在gitignore文件中将这些文件忽略掉,然而我一顿操作发现没用,这些文件还是被提交了上去。。。。 ...
阅读(59) 评论(0)

Picasso清空缓存策略(如更换头像)

最近在做一个看帖类的APP,帖子显示用户头像且头像可以修改。图片加载框架用的是Picasso,它自带缓存功能,默认情况下加载网络图片时会先从缓存中找,这可以大大节省加载时间。 但是因为用户可以更改头像,更改头像后图片的地址是不变的,所以要求每次打开APP看帖的时候看到的就是最新的头像,刚开始我在Picasso的链式语法中加入这两行: .memoryPolicy(MemoryPolicy.NO_C...
阅读(194) 评论(0)

Android Studio切换和合并分支branch

首先要理解开分支。默认情况下一个项目只有一个主分支,但是很多情况下需要开分支进行版本控制,最近我和小伙伴就发现版本控制很困难,需要进行开分支。如图,项目的主分支类似于一个链表,每次我们进行push的时候指针master也就移动到最新的位置。在主分支的最新节点开启一个新的分支后,在新的分支上进行的操作和主分支相同,不过并不会影响主分支。 在我们自己开的dev分支上的工作编写完毕后,就可以把它合并到...
阅读(376) 评论(0)

插件SQLScout使用

最近有一个要在AS上查看SQLite数据库的需求,就在网上搜索,发现可以使用SQLScout插件。 1.AS中搜索安装SQLScout插件并重启 2.工程Gradle中配置: allprojects { repositories { jcenter() maven { url 'http://www.idescout.c...
阅读(204) 评论(0)

ViewPager禁止滑动切换和去除切换时动画效果

自定义ViewPager,简单修改几个方法即可,直接上代码: public class MyViewPager extends ViewPager { public MyViewPager(Context context) { super(context); } public MyViewPager(Context context, AttributeS...
阅读(98) 评论(2)

greenDao插入数据无效(多表关联)

直接说我的案例吧,学生选课,一个学生有多个课,也就是student中有一个List。因为是多对多的关系,所以建立了第三张表JoinCourseToStudent。 @Entity public class Student { @Id(autoincrement = true) Long sid; String name; @ToMany @Joi...
阅读(99) 评论(0)

最简单完全退出应用方式(活动依次出栈)

实现思路非常简单,在Application中维护一个链表,活动创建时加入链表,销毁时同时删除列表中的元素。当需要完全退出时,将链表中的活动依次调用finish即可。 1.Application中的链表List list(Application需要能够获得单例,这里用的是方法getApp): public void addActivity(Activity activity){ ...
阅读(99) 评论(0)

greenDao配置和增删改查

配置: 1.在项目gradle中加入greenDao插件:dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' } 2.在APP的gradle顶部加入插件: app...
阅读(53) 评论(0)
86条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:29739次
    • 积分:1071
    • 等级:
    • 排名:千里之外
    • 原创:76篇
    • 转载:9篇
    • 译文:1篇
    • 评论:6条
    文章分类
    最新评论