Android随记
wblyuyang
我就是我。
展开
-
Android NullPointerException at android.text.BoringLayout.isBoring
最近遇到个很奇怪的问题,如题,下面是详细报错信息:E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException at android.text.BoringLayout.isBoring(BoringLayout.java:260)原创 2016-12-31 15:37:58 · 1608 阅读 · 0 评论 -
Android Studio配置svn时提示需要证书:authentication required的解决方法
as配置svn,当与svn进行项目关联的时候,有时候会弹出一个对话框要求用户选择证书,而svn是不要求使用证书的,此时可进行如下选择解决问题:setting->Version Control->Subversion->General选项卡中点击下面的Clear Auth Cache按钮即可清除证书缓存,此后再次关联项目时只需输入svn用户名密码即可。原创 2016-02-23 10:48:58 · 26303 阅读 · 6 评论 -
Android 在Fragment中使用TabLayout时标题不显示问题
app中四个Tab页是Fragment,使用FragmentTransaction方式进行显示和隐藏,各个Fragment之间不能左右滑动切换,只能点击,类似微信。好吧,现在问题来了,,,,我在一个Fragment中使用了TabLayout,奇怪的是,运行后,标题不显示,尝试了一个多小时,无果。然后通过google,发现了答案:这算是Tablayout的一个小bug,Fragment切换时原创 2016-01-12 10:05:07 · 8050 阅读 · 1 评论 -
Android EventBus在Fragment中不起作用的解决方法
一、AndroidEventBus。android平台事件总线框架。介绍:https://github.com/bboyfeiyu/AndroidEventBus/blob/master/README-ch.md二、问题出现情形。AndroidEventBus在Fragment中注册,由其他地方向Fragment中post事件。三、问题出现原因。由其他地方向Fr原创 2016-01-15 09:40:45 · 23983 阅读 · 1 评论 -
使用android-async-http下载图片时出现org.apache.http.client.HttpResponseException: Content-Type not allowed的错误
昨晚使用android-async-http库进行图片下载的时候提示了如上错误,Content-Type不被允许。此时我们可以打印出来http请求的一些信息,看一下所需要的Content-Type的类型。如下,在onFailure方法里面打印日志: HttpUtils.getInstance().getImgFromUrl(Constant.BeforeSendMsgVerfityImg,原创 2015-12-01 13:59:18 · 4113 阅读 · 0 评论 -
Android Fragment avoid non-default constructors in fragments use a default constructor plus fragment
一、出现情况。新建Fragment并重新构造函数传递参数的时候。二、出现原因。当Fragment被销毁,在重建的时候,系统只会调用默认的无参构造函数,这样我们自己定义的参数就有可能不能正确初始化,所以会提示上述错误。三、解决办法。1.把参数以Bundle的方式与Fragment进行绑定。如下: Bundle args = new Bundle(); arg原创 2016-01-18 15:37:08 · 1376 阅读 · 0 评论 -
Android Studio安装butterknife插件,让人无语的事情
最近几天打算学习下as,对于一直用eclipse的人来说,初始转入as肯定是不顺的,但是我没想到我的这个过程这样的破折。开始肯定是下载as了,然后安装,界面一出,瞬间感觉缭乱,,,不过没关系,这是正常的,,,,然后建工程,然后编译,然后,就悲剧了,编译出错,好像是sdk的问题,网上搜好像是说as那一版的问题,然后卸载,然后等了几天又下载了个新版的,然后建工程,编译,顺利运行。然后就开始熟悉as原创 2015-10-31 15:39:53 · 1261 阅读 · 0 评论 -
Android 使用ViewPager Indicator时,标题显示不全的问题
原因其实很简单,在style文件里面会有一个风格设置:只需把红框内的paddingLeft和paddingRight改小即可,原先默认是22,所以文字过多的话就会不显示。原创 2015-09-14 15:38:36 · 2149 阅读 · 0 评论 -
Android 关于页卡布局的一个小技巧---如何在当前页刷新数据
比如,app布局有4个选项卡,在其中一个选项卡中点了按钮,另外打开了一个Activity作了数据处理,当结束此Activity返回到之前的页卡时,需要刷新下此页卡和其他页卡的数据内容,当然可以在onResume()里面完成,不过我感觉比较麻烦,因为返回后,会运行不同页卡的onResume()方法。我用的是懒加载方式,就是进入哪个页卡就加载哪个页卡的数据,想了半天,想到个比较简单的方法,当结束act原创 2015-09-24 16:26:35 · 1371 阅读 · 0 评论 -
百度自动更新SDK的使用
对于百度强制使用自家自动更新sdk不作评论,这里只是记录其使用方式。其sdk有四种更新方式:1.静默更新 2.默认ui更新 3.自定义ui更新 4.通过百度助手更新为了达到应用更新模块的统一性,我选择了第三种,自定义ui更新。这个就看大家的选择了,四种方式都可以。一:首先到官网下载自动更新sdk:http://app.baidu.com/docs?id=19,下载的时候除了自动更新sd原创 2015-11-06 14:45:46 · 7312 阅读 · 9 评论 -
Android 弹出对话框Dialog充满屏幕宽度
项目有时候会用到Dialog充满屏幕有宽度,大多数是从底部显示出来。如下: final View view = LayoutInflater.from(context).inflate(layoutId, null); final Dialog dialog = new Dialog(context, R.style.style_dialog); dialog.setContent原创 2015-10-21 15:51:11 · 2865 阅读 · 0 评论 -
Android Studio使用HttpClient相关类库
由于 Android 6.0 SDK,不再提供org.apache.http.*(只保留几个类),所以如果编译版本为23时,如果需要使用HttpClient类库,例如需要用android-async-http等等,会出现找不到一些类库的错误。解决办法:在app build.gradle的android{}里面加上useLibrary 'org.apache.http.legacy'注意,此时如原创 2015-11-05 10:30:20 · 1689 阅读 · 0 评论 -
提交本地项目到github和提交更新
一:首先当然是去github注册账号了。二:注册完毕登录后,在自己的首页上面点击右上角“+”号,然后选择New repository,或者直接点击下面的绿色按钮,创建一个新仓库。如图:然后填入仓库的名称:填写完毕后,点击下面的绿色按钮,创建仓库。三:安装git程序,由于我是win64的,所以只找了64位的,这是下载地址:http://download原创 2015-11-05 18:51:47 · 7065 阅读 · 2 评论 -
android No resource found that matches the given name attr的一种解决办法
总的原则:用于编译的SDK的版本 >= 所用支持库的版本,如用了下面的库:compile 'com.android.support:design:22.2.1'那么SDK的版本要>=22:compileSdkVersion 22原创 2016-03-08 16:39:38 · 12312 阅读 · 1 评论 -
android使用zxing扫描界面全是白色以及更改显示文字屏幕居中
二维码扫描程序使用了夏神的项目,并作了修改及完善:1.扫描图片有拉伸2.扫描界面全部呈现白色3.提示信息在屏幕水平居中一、图片有拉伸解决办法:在CameraConfigurationManager类里面的initFromCameraParameters方法的Log.d(TAG, "Screen resolution: " + screenResolution);把这句之原创 2016-03-10 16:41:05 · 3195 阅读 · 0 评论 -
Android Glide You cannot start a load for a destroyed activity 的异常及解决方法
Glide 很强大,不再多说。今天发现了 You cannot start a load for a destroyed activity 这个异常,时因为相关 Activity/Fragment 已经 destroy,而程序代码中依然在使用 Glide 加载图片导致的。抛出异常的方法是在 RequestManagerRetriever.java 类里面:@TargetApi(Build.原创 2016-12-22 11:31:45 · 9569 阅读 · 2 评论 -
Android studio 突然断电导致的无法编译
导致的情况是没有编译选项,所有的module都带有扇形图标,这时可以打开插件页面,快捷键是ctrl + alt + s,然后 plugins,会发现 Android support 选项的对勾是没有选中的,点击选中,然后重启as即可解决该问题。原创 2016-12-02 17:53:27 · 1995 阅读 · 1 评论 -
RxJava 学习笔记
扔物线文章 《给 Android 开发者的 RxJava 详解》 的学习笔记。RxJava 介绍Github 地址: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid 引入依赖: compile ‘io.reactivex:rxjava:x.y.z’ compile ‘io.re原创 2016-10-25 21:56:07 · 916 阅读 · 0 评论 -
Android 使用OKhttp 3.0以上版本上传文件或图片(MultipartBuilder已不可用)
okhttp不用说,很火的网络库。今天说一下上传图片的问题。搜索一下,很有很多文章介绍怎样上传图片,到本篇文章为止我看到都是用的MultipartBuilder构造器,但是在3.0以上版本中MultipartBuilder已被替代,官方说明如下Form and Multipart bodies are now modeled. We've replaced the opaque For原创 2016-04-10 15:21:20 · 16501 阅读 · 0 评论 -
Andorid 引用.so库导致的崩溃问题解决办法
使用第三方SDK的时候,经常会有.so库。使用时一个重要问题是:主项目和引用库项目中lib的目录结构必须保持一致,即库项目中含有arm64-v8a目录,住工程和其他库工程也必须含有arm64-v8a目录,且里面必须有相应的.so文件。可以在build文件里面使用:ndk { abiFilters "armeabi", "armeabi-v7a","x86"};方式指定加载原创 2016-09-25 17:17:48 · 4830 阅读 · 1 评论 -
Android Studio每次重启都恢复之前的状态
前天很悲剧,把台式机电源线给踢了,然后重启电脑打开AS后就发现工作状态回到最初始的状态,关闭时的文件、目录结构、过滤条件、底部栏位置都被归置了,然后关闭,再打开,还是一样。。。。。 其实引起这种情况的原因是工程目录下的.idea—->libraries—->workspace.xml损坏了,解决方法就是删掉这个文件,然后重启AS即可解决。这里写链接内容原创 2016-07-08 16:36:25 · 3281 阅读 · 0 评论 -
Android中ViewPager + Fragment使用ButterKnife注解时出现空指针NullPoint的情况
一、如题。当Fragment超过3个时,包括3个,这种情况下使用Butterknife注解有时候会出现空指针。原因如下:在onCreateView里面进行绑定后,如果连续滑动,ViewPager会移除Fragment,然后Fragment会执行下面的方法: @Override public void onDestroyView() { super.onDestroyV原创 2016-07-07 14:55:08 · 7443 阅读 · 5 评论 -
Android 同时集成阿里云推送和阿里百川IM会报BuildConfig.class重复的错
推送和IM的版本为此时间点的最新版本,两个SDK都是以Module方式依赖,编译的时候会报下面的错误:Error:Execution failed for task ':ipark2:transformClassesWithJarMergingForDebug'.> com.android.build.api.transform.TransformException: java.util.zip.原创 2016-07-27 16:31:36 · 3677 阅读 · 3 评论 -
Andorid 方法数超过64K的问题
其实早就听过64K这个问题,只是觉得目前所做的项目较小,应该不会有这个问题。出现这个问题的直接原因我觉得应该是集成进了高德地图的三个jar包:309KB、377KB、474KB。然后的某天突然就提示64K的问题了,最开始我把无用的jar包删除了两个,没过三天,又出现了,以下是Android studio的提示:Error:The number of method references in a .d原创 2016-07-03 00:35:22 · 9535 阅读 · 0 评论 -
Android开发加速工具-JRebel for Android
Android2.0发布了Instant Run工具,利用热更新加快编译速度,但实际效果感觉很差,支持热更新范围很少,只支持方法内改动和xml文件改动,其他的诸如增加方法、类等操作都不支持。Android Weekly #204上面有一篇文章, JRebel vs. Instant Run,全面对JRebel和Instant Run进行了对比。直接上图: 今天还有一发现,原来老外也喜欢盗版,原创 2016-05-11 17:12:15 · 2849 阅读 · 0 评论 -
Android TextView指定关键字高亮显示
项目中有这个需求,网上搜了一把,方法挺多的,这里选择一个简单的,已验证可用的方法,记录下,方便以后查阅。TextView tv = (TextView) findViewById(R.id.hello);SpannableString s = new SpannableString(getResources().getString(R.string.linkify));Pattern p原创 2016-04-26 15:53:37 · 4918 阅读 · 1 评论 -
Litepal创建表时报错 an exception that indicates there was an error with sql parsing or execution
原因很简单:实体类中的变量用了SQL语法中的关键字,所以在创建表的时候会报错,,,,,,原创 2016-03-24 17:43:53 · 3269 阅读 · 0 评论 -
Android java.lang.IllegalStateException: ViewPager has not been bound 的解决办法
使用开源控件ViewPager Indicator时,如果标题数据需要从服务器获取,然后再设置Adapter,这个时候就会报错:ViewPager has not been bound 的错误,其中一种解决办法是,先把 TabPageIndicator 设置为GONE属性,等加载完数据设置Adapter后,再将其设置为VISIBLE。原创 2015-09-14 13:54:49 · 4631 阅读 · 1 评论 -
Android 禁止初始时ScrollView自动滚动到底部
用ScrollView,加载数据时有时会出现ScrollView自动滚动到底部,解决办法很简单,在ScrollView子标签LinearLayout里面加上: android:focusable="true" android:focusableInTouchMode="true"即可。如图:如果出现某个控件抢占焦点造成的,可以禁止此控件的焦点。原创 2015-09-14 11:29:31 · 4908 阅读 · 0 评论 -
Android 随意设置ListView标题,可实现每隔几行显示特定的内容 避免复用带来的显示错乱
项目中需要用到LIstView,每隔5行显示一张固定图片,开始我是根据adapter中的 if(position%5)==0 来判断是否显示图片,这样做第一次浏览时没问题,但是当反复上下滑动时就会出错,因为listview有复用的机制,这样使得并不是5的倍数的行数也显示图片。想到了一篇帖子中提到的固定标题的Listview,原帖:http://blog.csdn.net/androiddeve原创 2015-03-13 14:56:47 · 1264 阅读 · 0 评论 -
Android RadioGroup中的RadioButton无法选中问题的一种处理方式
项目中用到了单选布局,所以使用了RadioGroup和RadioButton,一组RadioGroup中增加了10个RadioButton,根据用户的新增和删除来动态调整每组RadioGroup需要显示的RadioButton数量,使用VISIBLE和GONE属性。效果图如下:由于没有找到现有开源组件可以实现这个效果,而ExpandableListView可能不能完全实现客户想要的效果原创 2015-03-17 10:28:23 · 6058 阅读 · 0 评论 -
Android RadioGroup做tab页卡切换时 内部RadioButton错位
我不知道是不是我手机系统的原因,红米没问题,刷了小米系统的华为手机就会出现这个问题。如图:所有该居中的属性都居中了,但还是解决不了,,,,,后来我突然想起了以前的一个错位问题,是因为padding属性,于是我马上设置内部各个RadioButton的padding=0,结果:原创 2015-02-28 15:14:26 · 1373 阅读 · 0 评论 -
Android 软键盘弹起隐藏的监听
Android软键盘是没有直接的监听事件的,网上说通过该SDK源码,重新编译可以实现直接的监听,但总感觉复杂,只是没办法中的办法。还有一种是通过监听onLayout函数来实现,但这个有局限性,只针对压缩布局,就是软键盘弹起后,屏幕布局上下压缩的形式,不过相对简单,特定情况下用着也很方便,所以上网搜了下,记下来。总共两步: 一 复写布局 二 实现监转载 2015-01-24 16:45:08 · 843 阅读 · 0 评论 -
android WebView 不能正常回退 FragmentTabHost 只能输入汉字,不能输入数字英文
发现个问题,用webview的goback()方法时,有的时候不能正常回退,一直会重定向到某个页面,上网搜了下,用下面的方法解决了问题。private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, Strin原创 2015-01-22 15:53:26 · 1067 阅读 · 0 评论 -
Android 顶部轮播 JazzyViewPager 改变滑动速度
github上有个顶部轮播的开源项目JazzyViewPager-master,图片切换动画是手动控制的,利用定时+setCurrentItem方法可以实现自动切换,但是会出现一个问题,切换过程中的滑动速度特别快,并且这个速度不能更改,是写死的,经查找资料,可以用反射实现。先列出正确做法,然后再记录下我开始时的错误做法。首先重写Scroller:package com.yy.my.util原创 2015-02-25 16:57:58 · 30760 阅读 · 0 评论 -
Android GridView setOnItemClickListener 监听事件不起作用的一个原因
项目中用了GridView,非常奇怪的是监听事件死活不能用,经过百度,知道了其中一个原因。GridView的item项中会用到布局文件,用以显示图片,文字等信息,如果布局文件用 ImageButton 来显示图片,那么setOnItemClickListener的监听事件就会不起作用,网上说是 imagebutton是用View.OnClickListener... 需要disab原创 2015-01-23 16:42:26 · 6062 阅读 · 0 评论 -
Android 解决某些机型CheckBox自定义按钮图片时发生的错位问题
先看问题:用CheckBox,屏蔽原来选择框,左侧自定义图片,右侧自定义选择图片,但是做出来确是错位的,有些机型正常,有些机型就会出现这个问题。找了很多方面也不知道原因,很纠结的问题,起码对我这初学者来说。后来经同事提醒,设置了padding=0,然后就正常了,原因不知道。原创 2015-02-07 15:00:44 · 595 阅读 · 0 评论 -
Android 简单实现圆形ImageView添加双层圆形边框
项目需要,研究了下,欢迎指正。大体思路:1.首先实现圆形ImageView,需要自定义ImageView。 2.利用shap属性实现双层边框所用素材:左边是头像,右边是背景。很简单,直接上代码。自定义圆形ImageView:package com.example.test;import android.conten原创 2015-02-07 10:44:13 · 4298 阅读 · 0 评论 -
ListView的动态刷新问题——用notifyDataSetChanged没作用
也许很多开发的朋友,尤其是Android初学者,在动态刷新ListView时,使用notifyDataSetChanged并没有起到作用。有时会被困扰得很痛苦。其实,在使用notifyDataSetChanged过程中,还是有细节需要注意的。举个例子:我的ListView使用的数据源是来自ArrayList。通常我们的做法是创建一个已经有我们想要提供给ListView的数据的Arr转载 2015-01-17 16:20:42 · 638 阅读 · 0 评论 -
Android 字符串转指定格式时间 日期处理 去掉月份或天多余的0 获取今天 昨天 明天等的日期和星期
都是些基础知识,不过偶java学的不咋样,记录下吧。字符串转化成指定格式时间://字符串转指定格式时间 public static String getMyDate(String str) { return StringToDate(str, "yyyy-MM-dd", "yyyy/MM/dd"); } public static String StringToDate原创 2015-01-16 10:30:14 · 8565 阅读 · 1 评论