1:华为输入法,输入框为ACTION_DONE模式,ActionId是 UNSPECIFIED
EditText对象.setImeOptions(EditorInfo.IME_ACTION_DONE)
回车键返回的ActionId是 IME_ACTION_UNSPECIFIED;(正常为IME_ACTION_DONE)
2:红米手机调用系统拍照,导致页面重建,丢失数据
在调用拍照之前,保存当前页面的数据。咱是保存到SharedPreference里面,然后在onRestoreInstanceState函数里重新取值、赋值
3:视图的setBackgroundDrawable(对象)资源不能复用
比如列表中我们文字的背景颜色都是一样的, 这时候,我们希望能用Drawable把这个背景缓存起来,然后挨个TextView去赋值,
实际上,只有最后一个赋值成功。解决之道是直接使用seBackGroundResource
4:Activity的startActivityForResult;在Fragment的OnActivityResult不能捕获
因为Activity的startActivityForResult对requestCode左移了16位,因此Activity的OnActivityResult里对requestCode右移了16位进行补偿
Fragment的OnActivityResult自然判断不了被Activity位移后的requestCode,解决之道是fragment使用自己的startActivityForResult
5:android 6.0 老的http请求模块无法找到。
android 6.0的sdk里面删除了apche的请求模块,比如 org.apache.http.Header 就找不到了。
解决之道是在gradle里根节点加入
android { useLibrary 'org.apache.http.legacy' }
实测加入上面一句,重新Sync就行了
如果你还是不行的话,参考知乎上详细的解决步骤:https://www.zhihu.com/question/35597452
6:android 6.0 静态内部类访问失败
静态内部类在5.x以及以下的版本都正常,但是在6.1上报错,没有访问权限
解决之道是把静态内部类声明为public。
7:Html.fromHtml 尖括号<丢失
输入
<font color='#ec1e1e'><</font> ,
输出, (尖括号消失了)
解决之道是在使用前,对尖括号转义掉
public static String transBrackets(String str) { if (TextUtils.isEmpty(str)) return ""; return str.replace("<", "<"); }
8:android studio 2.0打出来的debug包,在5.0以下的机型上打开报错。
错误提示:
Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication
原因:
android studio 2.0默认使用的是com.android.tools.build:gradle:2.0.0
这个版本使用了5.0的特性来支持instant run。
解决之道是使用release模式。