【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 @   谪仙  阅读(402)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示