Android
文章平均质量分 52
sunxiaogang0214
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 注解以及Log模块
android注解框架与Log管理类原创 2016-08-29 18:58:51 · 1006 阅读 · 0 评论 -
Class "xxx" is never used
今天项目中突然各种类出现了这个东西(我可以十分确定的是别处有引用) 项目里总共2处地方有这个问题,第一个地方 是我外层起的包名为 :interfaces 修改成myinterfaces后突然就好了。什么鬼? 还有一个地方是我的Application 。我随手起了一个 XApplication。清单文件的资源引用可以跳进来,可是点击这个XApplication 就给提示Class “xxx” i原创 2016-12-14 10:18:57 · 4030 阅读 · 2 评论 -
Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
这个问题比较纠结,懵B的原因是自己英语不好,翻译一下: 运行App错误,运行时需要 Tools–Android–Enable ADB integration被激活才可以。 解决思路 点击Tools下的Android 里面的Enable ADB integration 被勾选就可以了。出现原因,肯定是之前搞事情的时候误点了。原创 2017-01-05 09:28:18 · 293 阅读 · 0 评论 -
Unexpected cast to TabLayout: layout tag was TableLayout
Android开发遇到的一个问题下面贴图 首先先说明一下开发环境:Android Studio 2.2.2 (刚升级,没用到这个版本的童鞋,赶紧升级去吧,好多黑科技),刚开始是蒙蒙的,从来没有遇到这个问题,然后就去查看布局文件 这个TableLayout 真的是坑哈,应该用的是TabLayout support.design库下的控件(你说这科技黑不,自动检验运行时异常?)改成TabLayou原创 2016-12-29 10:22:43 · 5858 阅读 · 0 评论 -
日常汇总
控件篇: (1)Banner github上的项目,感觉很不错。ViewPager 实现,集成了很多切换动效。 点我去项目主页 (该作者还有很多其他项目, 感兴趣的童鞋可以去看看)原创 2016-12-29 13:43:25 · 390 阅读 · 0 评论 -
记录一些常用的易忘(偏门)的控件属性
1、TabLayout//改变选中字体的颜色app:tabSelectedTextColor="@android:color/holo_orange_light"//未选中字体的颜色app:tabTextColor="@color/colorPrimary"//指示器下标的颜色app:tabIndicatorColor="@android:color/holo_orange_light"/原创 2016-12-29 09:31:42 · 399 阅读 · 0 评论 -
退出界面,优雅的关闭软键盘。
最近有点时间,写点随笔吧。 之前在做这个功能的时候,百度出来的全是 1 2 3每条都很清晰,每篇文章几乎都一样(作为一个从业人员,我不喜欢这种方式)。 今天就简单介绍下,个人一点见解。理论出自于实践。 网上给出的这个方法,是很不错的。 /** * 手动隐藏键盘 */ public void hideSoftWindow() { InputMethod原创 2016-12-20 09:40:17 · 1866 阅读 · 0 评论 -
Android 混淆的那些坑
如果有人要搞你的应用,你开心的去混淆了。其实那并没有什么卵用,我甚至听到过混淆后无法反编译的言论。现阶段,不如加固来的实在。能加固,就别混淆,混淆是一门技术,对于入行不久的人来说,这个工作要持续很长时间。 记录混淆遇到的坑: 在我的gradle里我debug模式也开启了混淆。在编译阶段测试而已,但是等到打包以后,整个项目就卡住了。由于是正式包看不到错误日志。。比较尴尬吧,完全凭借意念去解决问题。原创 2017-01-11 11:11:38 · 420 阅读 · 0 评论 -
Android 之MVP模式
前言:如果童鞋对于接口回调,多态,泛型(这个很重要)不是特别熟练,或者不是特别了解,建议还是不要使用这种模式。先谢谢常规MVP练练手,等真正对这些知识能熟练掌握了再来学习MVP模式。这个架构用到了大量的接口,泛型。(基础很重要啊)使用MVP模式架构项目也有2个了。最新的项目原本想结合Dagger2去做(听说会让结构更加清晰)。不过在看了一上午Dagger2以后,我决定下个项目再集成,先把现有的MVP原创 2017-02-07 18:47:14 · 1073 阅读 · 0 评论 -
TabLayout自己踩过的一些坑
TabLayout十分强大,特别是处理顶部导航的时候,几行代码就可以达到一个非常不错的效果,配置也相对简单,具体使用,此处不多讲,说说它与ViewPager联动的一些坑1、TabLayout有直接关联 ViewPager的方法 setupWithViewPager(),使用这个方法,必须要在ViewPager设置适配器之后。 2、添加tab 使用这个方法 mTabLayout.addTab(mT原创 2017-02-07 19:02:51 · 3730 阅读 · 0 评论 -
EditText 设置lines=1或者maxLines=1属性后 单机键盘上的回车键,依旧可以换行
这个bug停让人蛋疼的。我不知道这是谷歌sdk的bug还是我用的键盘软件的bug,反正,就是出来了。在最新的sdk明明已经将singleLine打上了过时标签,还是需要靠这个属性去设置。 吓得我赶紧去更新下键盘。原创 2017-02-22 17:15:08 · 2550 阅读 · 1 评论 -
使用Android Studio 执行多渠道打包
使用Gradle去构建多个包,每个包可以去对应不同的下载渠道,icon或者.so 适配平台的设置等。 先简单说一下Gradle android的配置defaultConfig { applicationId "com.xxx.xxx" minSdkVersion 15 targetSdkVersion 25 //versionCod原创 2017-03-22 14:07:50 · 373 阅读 · 0 评论 -
关于Gson解析异常:Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $
很明显,字面意思,Gson解析异常。 出现这个的原因多是Gson串不标准,甚至是返回乱码,这些都需要后台去处理。 我遇到这个问题遇到过2次。 第一次:网页测试都是好的,正常解析。我甚至找了好几个小时的程序代码。都没有找出问题来。当我把网页测试的json串,复制用GsonFromat去解析,发现这个串的前面多了2个不知名字符,我猜,应该是一个空格,导致解析检查出现问题。 第二次:服务端返回直接原创 2017-03-15 10:13:33 · 49655 阅读 · 0 评论 -
仿支付宝支付键盘
第一次拿到这个需求,第一个想法,各种控件嵌套+监听 解决问题。后来想想,这么个东西用这么多控件有点大材小用了,于是就自定义了。 前沿:由于大部分程序员的特性以及工作性质都属于拿来主义者。特此说明,本文章只提供解决思路和关键性代码,不会附带全部代码。由于只是已Demo方式呈现,并不是一个成熟的自定义控件,好多属性都没有抽离出来,项目写死了。当然也好改。 第一步:构造。这个没什么可说的,在里面初始化原创 2017-06-03 16:30:33 · 1741 阅读 · 0 评论 -
记录代码合并时产生的bug
bug提示:Error:Execution failed for task ':app:transformClassesWithJarMergingForQh360Release'.> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/androi原创 2017-11-03 14:05:19 · 590 阅读 · 0 评论 -
Android常用集合List之实现类ArrayList解析
前言主要属性构造方法解析几个主要的和常用的方法modCount++前言基于Java1.8源码,层级结构就不再多叙述,只介绍几个内部方法解析 主要属性 /** * Shared empty array instance used for empty instances. */ private static final Obje...原创 2018-04-03 13:56:56 · 1995 阅读 · 0 评论 -
Android Studio 打开项目小知识
1、我们在每次开启之前都可以到选择面板去选择打开某一个项目: 开启方法,不做详细介绍了,百度百科很详细,点我去查看如何设置 2、昨天刚遇到的问题,打开项目以后,项目历史开启页面等信息都没有加载出来,空白一片,大概这个样子 重新启动了好多次,发现在开启的时候出现这个提示,由于启动速度过快,很容易忽略了。 出现一个loadsetting的错误,追踪下路径,于是就有了解决方案:在.idea原创 2016-12-09 09:33:49 · 883 阅读 · 0 评论 -
android open failed: ENOENT (No such file or directory)
今天在做上传头像的时候遇到这个坑。(调试阶段,我的手机是好的,别的手机是坏的(坏手机是三星,坏透了)) 出现这种原因:首先要想到的是你自己创建了一级子目录,比如,我就创建了一级目录,用于存放项目图片,代码如下 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {原创 2016-11-26 15:49:04 · 2881 阅读 · 0 评论 -
那些年,关于android集成微信的坑
集成了好多微信了,每次集成都是一个坑。接下来我就细数一下这些坑。第一点,请注意,我们是做android,对,微信有两个平台,一个是公众平台,一个是开放平台。没错,这是两个东西,千万不要混淆,我们集成android不管是登录分享还是支付或者其他也好,用的是 开放平台, 开放平台,开放平台。第二点,有些新人,第一次集成,看看文档,心里已经骂上了什么鬼,这是什么东西,代码部分我不说,直接一顿co原创 2016-08-31 10:04:16 · 427 阅读 · 0 评论 -
Android ScrollView 嵌套ListView与GridView的最终解决方案
前言:(由于时间紧,这里只提供思路,和简单代码片段,如果是纯拿来主义,什么都不看就直接用,本文章是满足不了的)项目中难免会遇到ScrollView与ListView等控件的嵌套,而这些控件的嵌套会出现许多意想不到的问题。(以ListView为例) 问题一:我的ListView怎么只有一行? 问题二:当出现较复杂的页面的时候刷新适配器,如果你打印下log,你会震惊的发现,怎么会这样,怎么会这么卡。原创 2016-09-18 16:58:29 · 508 阅读 · 2 评论 -
Android开发之--沉浸式状态栏
Android开发越来越多的用到沉浸式状态栏,记录下使用心得。首先:想使用沉浸式状态栏,必须要在4.4及以上系统。使用详情(以Activity 为例,FragmentActivity相同):if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); if原创 2016-08-04 19:07:40 · 798 阅读 · 0 评论 -
android 仿ios带弹簧效果的ScrollView
仿ios弹簧效果原创 2016-08-26 17:49:22 · 3169 阅读 · 3 评论 -
Android开发注意事项--不定时更新
前言:自己开发中遇到的问题,解决思路,一些效果好的实现方式。此文章比较杂,会不定时更新。更新时间:自己有感悟了就来更新下。关于适配许多初级开发者,都不太理解 适配这个概念。 在我看来适配是分为两方面的 1、屏幕适配2、手机型号适配关于屏幕适配:android给了我们最终的解决方案,使用dp。但是有的时候也是有问题的,就比如一行展示的内容较多,例如 我这一行要展示 一个商品的 原原创 2016-09-07 10:41:10 · 493 阅读 · 0 评论 -
关于Android应用无法安装到手机问题
在Android开发中,我们在更新应用的时候,会遇到一种情况,就是安装过程一直很顺利,但是却安装失败了。 在笔者第一次遇到这种情况的时候也是一脸懵逼。直到有一次上传应用市场(具体哪个忘记了),给我提示提交版本不高于当前版本。看看我再gradle里面的配置,版本是不一样的。 其实不然,后来静下心来想想,然后去看了下谷歌的api。才瞬间明白,在配置版本信息的时候会有2个 内容需要填写 一个是ver原创 2016-10-09 19:22:53 · 1180 阅读 · 0 评论 -
关于各种框架加载图片的坑
今天在做这么一个功能,拍照,裁剪,上传。这本来是一个很简单的功能。但是却遇到了一个bug:那就是修改图片以后本地加载图片会有错误(无法覆盖)。起初是以为手机适配问题,先也没管。(跟后台联调了,发现图片是上传上去的,只是我本地显示有问题) 之前神来一笔,是动态改变图片名称,这个问题也得到了解决。 但是今天,我再整理Glide工具类的时候,突然发现了缓存这么一个东西,没错,是缓存。所有的图片加载框架原创 2016-10-10 18:16:25 · 382 阅读 · 0 评论 -
Android 通用Adapter封装
从开始学习封装,就是仿照慕课网某视频学习的。这才过去半年,自己也有思路了,现在把我的封装代码贴出来,给初学者一点帮助吧。有任何问题,请联系我。/** * 描述:单布局适配器基类 * author SunXiaoGang * E-mail sunxiaogang0214@163.com * Created by SunXiaoGang on 16/9/23. */public abstra原创 2016-10-12 19:09:49 · 452 阅读 · 0 评论 -
关于页面跳转的坑
当我们使用startActivityForResult的时候,偶尔会出现这种情况,onActivityResult回调不走了(其实是走了,只是走的比较早)。笔者在出现这种情况的时候的原因是在 跳转的页面launchmode设置了singleTask启动模式,在跳转之后,直接调用onActivityResult回调。解决这种问题就是要解决 启动模式跟Fragment之间的回调问题。 具体项目根据具体原创 2016-09-29 16:52:14 · 328 阅读 · 0 评论 -
关于使用Glide的一点小坑
前言:Glide很强大,这个不用多说,谁用谁知道。 在实际项目中,我们的一些错误做法可能会辜负这个强大的图片加载库。 就比如:后台传的商品图片品质太差,用Glide缓存的时候会出现绿色背景,一顿百度谷歌之后,不少人给出了完美的解决思路:就是设置图片的解码格式 。从rgb-565—>rgb-8888。(如果不会自行百度,反正我是不建议) 之前首页图片少还没感到什么,但是自从有了个图片群的功能(全展原创 2016-11-02 18:07:03 · 3616 阅读 · 0 评论 -
Android 退出应用几种方式
虽说网上一百度一大堆,还是给自己整理整理。 1、也就是我最开始使用的。System.exit(0);此方法,在项目里,我是有遇到问题的,退出的时候不定时的会出现一些其他问题。 2、次方法比较粗暴,也是比较野的一个路子,ps:看到代码千万不要打我啊。private void killProgress() { throw new NullPointerException();原创 2016-12-03 10:14:45 · 373 阅读 · 0 评论 -
SimpleDateFormat格式化long型时间,比真实时间多了8个小时
这个是朋友遇到的bug,后台返回一条long型数据,要转成 hh:mm:ss的格式,数据转换后正确数据大概在1:29:00上下浮动,可是他转出来的是9:29:00浮动,比想象中的正确时间多了9个小时。(后来我去百度,确实没百度到这方面的资料,也许是输入的方式不正确); 其实敏感的人都会隐约意识到,这多的8个小时有种似曾相识的感觉(北京的时区是东八区,世界大事记用的都是中时区时间,说白了,就是大家都原创 2016-12-05 13:17:03 · 9527 阅读 · 0 评论 -
ViewPager与RadioGroup实现导航切换
前言:百度(谷歌)上已经有很多类似的例子了,为什么还会有这篇文章? 第一:我观察所有的文章都是在介绍原理,有的帖出了代码,对于新人来说,都是不错的教学案例,不过,有的人就是不会,就只想用(我同事,开发ios的,想搞安卓)。所以封装成一个控件了,直接用就行,支持大多数情况 第二:所有代码逻辑实现几乎都放在Activity,这种方式是我不喜欢的。Activity只负责展示就好,具体逻辑尽量不要放在A原创 2016-12-07 17:17:17 · 517 阅读 · 1 评论 -
小米搞事情之----mimu8
首先,感谢小米。因为我从开始就用的红米2A,对我技术的成长有很大帮助,特别是对于功能的实现方式上,写的不好使很容易卡顿,闪退,ANR(昨天更新了MIMU8 微信闪退好几次才进去)。 慢慢整理这些坑吧。 1、昨天好好的应用,今天突然链接电脑安装不上了。请进入开发者选项–有个允许USB安装应用,这个功能是新添的吧,默认关闭,开启就好。原创 2016-12-08 11:34:20 · 627 阅读 · 0 评论 -
Java数据结构 Vector和ArrayList 比较
相同点: 1、具有相同的父类AbstractList。 2、数据都是用内部维护的数组来存放。 3、设计理念基本相同。 不同点: 1、Vector是线程安全的ArrayList是线程不安全的 原因:Vector中所有操作都必定有一步是方法被synchronized关键字修饰的,所以是安全的 ArrayList中没有synchronized同步代码,...原创 2018-07-18 14:43:00 · 346 阅读 · 0 评论
分享