Android7.0及以前版本,Configuration中的语言相当于是App的全局设置: public static void changeAppLanguage(Context context, String newLanguage){ Resources resources = context.getResources(); Configuration configuration = resources.getConfiguration(); // app locale Locale l…
前几天客户提需求,对App增加一个功能,这个功能目前市面上已经很常见,那就是应用内切换语言.啥意思,就是 英.中.法.德.日...语言随意切换. (本案例采用Data-Bingding模式,麻麻再也不用担心我findViewBy不到Id了哈哈,开个玩笑) 先上示例图: 代码实现: 布局文件(Data-Binding模式),很简单就是两行文字 <?xml version="1.0" encoding="utf-8"?> <layout xmlns:a…
上篇 IOS APP 国际化(实现不跟随系统语言,不用重启应用,代码切换stroyboard ,xib ,图片,其他资源 介绍了纯代码刷新 实现程序内切换语言. 但效率底下,也存在一些问题.暂放弃. 第二种是 从跟视图切换 storyboard 实现 代码结合 storyboard 刷新 UI, 上篇遗留的问题是,在开发的时候我们要用到 base.lproj 和 对应语言下得.string 文件. 方便开发(脚本实现 base storyboard 被编辑会 自动刷新对应语言的.string 文…
前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxPermission.这里不再介绍Android 6.0运行时权限了,直接看下如何使用RxPermission. 权限管理相关博客: Android权限管理之Permission权限机制及使用 Android权限管理之Android 6.0运行时权限及解决办法 Android权限管理之RxPermis…
我的Android进阶之旅-->如何解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.xtc.kuwo.watch.MUSIC_PLAY_SERVICE (has extras) } 1.错误描述 今天在Android4.4 的小米4手机上运行我的程序的时候没有报错,而在Android 5.1的华为P7上运行我的程序的时候报了以下的错…
我的Android进阶之旅-->怎样解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.xtc.kuwo.watch.MUSIC_PLAY_SERVICE (has extras) } 1.错误描写叙述 今天在Android4.4 的小米4手机上执行我的程序的时候没有报错.而在Android 5.1的华为P7上执行我的程序的时候报了以下…
extends :http://bbs.51cto.com/thread-1075165-1.html,http://www.cnblogs.com/loulijun/p/3164746.html 1. 多国语言: 在res目录下建立不同名称的values文件来调用不同的语言包 Values文件汇总如下: 中文(中国):values-zh-rCN中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-en-rUS 英语(英国):values…
最近接了一个项目,需求是要做一款应用的英文版本,客户并不清楚,以为要另做一个APP.沟通后告诉他们在之前应用基础上加个国际化功能就好,把之前的语言国际化重新梳理记录一下. 一般设置更改本地语言环境后,需要重启应用才可以生效,客户那边是要求不能重启应用,必须是切换后立即生效. 首先新建个工程: 接下来要配置你想添加的国际化语言类型: 对应有 XIB 或 Storyboard 文件也对应国际化: 新建 String File,命名为 "InfoPlist" (必须是这个字符串,后缀.str…
问题描述: 自从Android 4.0以后,开发人员是不能监听和屏蔽Home键的,对于KEYCODE_HOME,官方给出的描述如下: Home key. This key is handled by the framework and is never delivered to applications. 所以,除非修改Framework,都不能直接监听Home键了,网上有朋友说监听Log日志,但是现在按Home键是不显示Log日志的,而且不同的手机型号即使显示也不会一样. 在网上找了好多方法都…
有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动.而android源码是这样写的(源码位置:sdk/sources/android-21/android/app/ContextImpl.java): private void validateServiceIntent(Intent service)…
在 Android 4.4 操作系统上测试混合应用时,可以直接顺利的在native模式和webview模式之间切换,但是在Android6.0 操作系统上却报NoSuchContextException 的异常, 百度了一下原因:产生问题的原因:在Android 5.0中有9个字段在引导时,但在Android 6.0中有8字段在引导时:Android 5.0USER PID PPID VSIZE RSS WCHAN PC NAMEu0_a611 23802 188 1169748 133272…
extends:http://www.eoeandroid.com/thread-568853-1-1.html 本帖最后由 469874851 于 2015-3-11 18:15 编辑 有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动.而android源码是这样写的(源码位置:sdk/source…
有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动. 而android源码是这样写的(源码位置:sdk/sources/android-21/android/app/ContextImpl.java): private void validateServiceIntent(Intent service…
Eclipse 解决办法 libs中加入 org.apache.http.legacy.jar 上面的jar包在:**\android-sdk\platforms\android-23\optional下(需要下载android 6.0的SDK) Android Studion解决办法: android { useLibrary ‘org.apache.http.legacy‘ } 在使用android-async-http的时候我的apl 更新到了23,我的build version也是23的…
1.前言 自己负责的项目需要做国际化,并且要求应用内部切换语言.这个是可以做到的,也并不难,可以直接戳Github看一下 https://github.com/leo90821/LocaliztionStringExchange 2.实现原理 原理比较简单,利用NSBundle切换语言包,主要利用NSBundle的方法 - localizedStringForKey:value:table: 进行本地字符串的切换 3.实现代码 1)业务逻辑 头文件 #import <Foundation/Fou…
本文转载自:http://www.jb51.net/article/128398.htm 这篇文章主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下   前言: 之前项目比较旧,手机版本还比较低,还使用eclipse开发.用到了需要获取手机wifi Mac地址.使用了如下代码: // Android 6.0之前的版本可以用的方法(模拟器可以使用) private String getMacAdd…
Android 5.0程序运行报Service Intent must be explicit错误,原因是5.0的service必须显式调用 改成 Intent intent = new Intent(mContext, IService.class); 或者Intent intent = new Intent(): intent.setclass(xx.xx,xx.xx): 网上说的如下方式是不可行的: Intent intent = new Intent("com.xx.xx.Service…
创建SharedPreferences的管理类 public class PreferenceUtil { private static SharedPreferences mSharedPreferences = null; private static Editor mEditor = null; public static void init(Context context){ if (null == mSharedPreferences) { mSharedPreferences = a…
最近解决了一个Android APP的bug,发现APP在被后台清理后,会自动重启.现象很奇怪,有的手机(HTC)后台清理后,程序会再次重启,而有的手机(小米)则不会.猜想可能是小米手机内部做了处理,当执行后台清理后,就不允许对应的APP重启了. Debug后发现,APP内部有一个Service,在Service的onStartCommand函数中,返回值是一个int.主要的两个值是START_STICKY和START_NOT_STICKY.START_STICKY的含义是如果service进程…
Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在AndroidManifest.xml中为Activity设置configChanges属性, application android:icon="@drawable/icon" android:label="@string/app_name"> <activi…
在魅族最新的特定版本出现APP背景突然被改变颜色的问题 出问题的机型相关信息 型号:魅族16th Plus Android 版本: 8.1.0 安全补丁 版本: 2018年10月1日 Flyme 版本: 7.1.3.3A 问题详情描述 APP整体背景 = #FFFFFF 纯白 某个页面的某个按钮需要将 纯白 文本背景改为 半透明 于是使用了 setAlpha 函数设置为 140 结果整个APP的所有页面的背景色 都变色了. 在 testin 上的云真机测试了同类似型号测试却没有复现,猜测会不会是…
问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: <ScrollView android:id="@+id/scrollView1" android:layout_width=&q…
在Android4.0系统中,创建菜单Menu,通过setIcon方法给菜单添加图标是无效的,图标没有显出来,2.3系统中是可以显示出来的.这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 MenuBuilder做了改变,该类的部分源码如下: public class MenuBuilder implements Menu { ... private boolean mOptionalIconsVisible = false; .... void setOptionalIconsVisib…
<ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_below="@+id/linearLayout2" android:b…
在build.gradle中的android {}中加上useLibrary 'org.apache.http.legacy'…
一:尾随系统切换语言 1>创建好项目project后, 新建一个多语言文件: 2>加入要设置的语言类型: 3>加入成功 细心的朋友可能会发如今English后面写的是3 Files Localized,这是由于英语是系统默认加入的,并且同一时候为Main.storyboard 和 LaunchScreen.storyboard设置了多语言,我在自己加入的时候没有勾选这两项. 3>使用多语言文件在应用内设置相应语言 "label"="label"…
最近一个一直在迭代的老项目收到一份新的开发需求,项目需要做国际化适配,简体中文+英文.由于项目中采用了storyboard和纯代码两种布局方式,所以国际化也要同时实现.上网查了些资料,实现了更改系统语言后,修改app内语言的问题.具体国际化方式可以参考下文: 3分钟实现iOS语言本地化/国际化 这篇文章讲的比较详细,很容易实现. 这个需求实现后不久,产品又给我提了一个需求,让我要在app内实现语言切换.还好之前的国际化也做了些准备,不慌不慌. 接下来就是方案的选定,通过广泛查阅资料,得出两个备选…
1.首先提供多语言对应的string值 如en对应英语, fr对应法语 两个文件中包含同样的key, 对应不同的语言的value 2.java代码相应用户切换语言动作 private static void setAppLanguage(Context context, Locale locale) { Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetric…
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以上设备越来越多了,所以Android 6.0 权限适配是必不可少的工作,这里主要介绍一下我们公司是如何做Android 6.0权限适配的. 权限管理相关博客: Android权限管理之Permission权限机制及使用 Android权限管理之Android 6.0运行时权限及解决办法 Androi…
逻辑很简单: 1  app内所有activity继承自BaseActivity或BaseActivity派生出来的子类,BaseActivity中维护了一个静态的 app Activity访问栈,在创建和销毁时会执行压栈和出栈操作,所以mLocalStack内维持的是app中正在运行的activity. 2  将app的语言环境存储在SharedPreferences中,避免app重启时修改状态不改变:在BaseActivity创建时取出语言环境字符串并初始化Activity语言环境(initL…