琐碎的一些tips
MultiDex打包时zip错误
我遇到的是
Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.java.util.zip.ZipException: duplicate entry: android\/support\/v4\/util\/TimeUtils.class
在gradle里,把v4的依赖换成这样子就好了:
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile 'com.android.support:multidex:1.0.1@aar'
}
多语言
默认的values文件夹里的strings.xml作为英语的字符串资源文件,新建一个values-zh文件夹,里面放一个strings.xml文件,只不过value都是中文,这样就会自动根据系统语言调用字符串了。
Preference
android.support.v7.preference可以实现material design效果的设置页面,但我们要如何用getSharedPreference那套方法来操作其中的数据呢?关键在于配置xml文件的名称,查询android.support.v7.preference.PreferenceManager的构造方法,看到:
public PreferenceManager(Context context) {
this.mContext = context;
this.setSharedPreferencesName(getDefaultSharedPreferencesName(context));
}
所以可以用getDefaultSharedPreferencesName来获得xml文件的名字,另一种方法:
SharedPreferences sps = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
String userName = sps.getString(getString(R.string.pref_user_name_key), getString(R.string.pref_default_user_name));
用getDefaultSharedPreferences来获取。