Ⅰ android开发案例驱动教程目录
Android开发案例驱动教程目录:
前言:
- 简要介绍Android的历史、架构。
- 与其他智能手机操作系统的比较。
第二章:开发环境搭建:
- Eclipse和ADT插件的安装步骤。
- Android SDK的获取和配置方法。
- 使用模拟器进行程序调试的指南。
第三章:HelloAndroid程序创建:
- 从项目创建到代码编写的详细流程。
- 运行并理解Android工程目录及关键文件。
- Android组件和调试工具的介绍。
第四章:UI基础知识:
第五章:UI基础知识:
第六章至第十四章:进阶技术与实践案例:
- 第六章:列表类控件的使用与案例。
- 第七章:对话框的创建与应用。
- 第八章:国际化与多语言支持。
- 第九章:布局管理技巧与案例。
- 第十章:多线程编程在Android中的应用。
- 第十一章:Activity和Intent的使用与案例。
- 第十二章:数据存储方案。
- 第十三章:Content Provider的使用与案例。
- 第十四章:多媒体、Service、Broadcast Receiver、Notification以及云端应用开发实践。
第十五章:高级应用与服务:
- Google Map和定位服务的集成与应用。
- 通信应用开发。
附录:参考文献:
Ⅱ Android 国际化 设置Locale.ENGLISH不生效以及createConfigurationContext()问题
Q1 故事情节: 设置了简体中文,繁体中文和英信戚锋文,结果拿了7.0荣耀青春版完美显示,然而7.0下的所有安卓手机都设置英文无效,简体中文和繁体中文依然可以,纳闷......
Q1 解决方式:虽说看起来设置了英文Locale.ENGLISH, 但实际上有些手机或系统需要特殊指明那个英文的(英国/美国),所以不要直接使用Locale.ENGLISH,将滑晌Locale.ENGLISH改成相对应的Locale.US(美国英文) 或 Locale.UK(英国英文)就可以了,如下图注释部分。
Q2 故事仔渗情节:还以为Q1问题解决就可以了,在设置createConfigurationContext(config)情况下,>=6.0系统的手机都切换语言失败(5.0的手机刚好没有,所以待定),具体原因不详
Q2 解决方式:老老实实,用回getResources().updateConfiguration(config, null)就可以了
Ⅲ Android国际化多语言切换
关于App国际化,之前有讲到国际化资源、字符换、布局相关,想要了解的猛戳 用力抱一下APP国际化 。借着本次重构多语言想跟大家聊一下多语言切换,多语言切换对于一款国际化App来讲是重中之重,并非难事,但是若要做好也是一件不容易的事情。
当我们做了系统的配置更改,比如说切换了系统导航或者说更改了深色模式,那么我们一般的处理是也是要对Application作出处理。
如果项目中有用到ApplicationContext去getString(@StringRes int id)实现加载的提示语,那么如果只是单纯的重启界面则无法让当前的提示语跟随当前切换的语言,所以我们要么重启整个应用,要么对ApplicationContext中的Local也作出相应的更新方可,这里有一点问题,虽然Android N之后updateConfiguration是过时方法,官方给出使用createConfigurationContext代替,但是更新ApplicationContext的Local发现无效使用老版本updateConfiguration正常。
如果你发现你的应用广播通知栏适配无效,那就是context中的Local在切换语言是并未及时更新Local,这里调试一下便知,如果是Applicaiton注册的广播,那么多半情况下是没有更新ApplicationContext的Local所导致的。
多语言适配基本步骤大概就是如此了,下面看一下适配的细节问题。
[图片上传失败...(image-b42d06-1640685147639)]
还有一点Android N之后,手机系统的语言配置选项已经不是单选了,改为一个列表了,具体可以参考手机设置中的语言和输入法,所以 setLocal(@Nullable Locale loc) 方法建议不要再使用了,我相信很多人还在用,正确的用法应该是 setLocals(@Nullable LocaleList locales) ,需要传递一个集合。
当你的应用使用的是androidx.appcompat:appcompat:1.2.0及以上时,BaseActivity中需要实现下面方法。
这套方案目前不在推荐,直接去替换attatchBaseContext()中的context则可,经过测试是完全正常的。
以下则是多语言操作的工具类,现在提供出来,需要的朋友可以自行进行改造。