【android】开发中遇到的一些问题

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("<", "&lt;");
    }

 

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模式。

 

posted @ 2015-11-19 11:37  谪仙  阅读(390)  评论(0编辑  收藏  举报