欢迎Follow我的GitHub, 关注我的CSDN.
介绍一些, 在Android开发中, 会经常使用的小知识点.
绝对路径
/storage/emulated/0/Download/xxx
遍历
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File[] files = file.listFiles();
for (int i = 0; i < files.length; ++i) { Log.e(TAG, files[i].getAbsolutePath()); }
绑定多个参数
@OnClick({
R.id.dialog_dau_share_wx,
R.id.dialog_dau_share_wx_timeline,
R.id.dialog_dau_share_weibo,
R.id.dialog_dau_share_qq
})
submodule与git可以保持实时同步.
添加
git submodule add https://github.com/SpikeKing/DroidPlugin.git DroidPlugin
使用
git submodule update --init --recursive
导入, 路径多于一个, 前面不添加冒号(:).
include ':app', 'DroidPlugin:project:Libraries:DroidPlugin'
引用
compile project(':DroidPlugin:project:Libraries:DroidPlugin')
参考
使用PackageManager.
// 检查App是否安装
private boolean appInstalledOrNot(String uri) {
PackageManager pm = getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}
invalidate(). 参考.
波纹效果(5.0+), 阴影效果(5.0-).
android:background="?android:attr/selectableItemBackground"
继承样式
<!--按钮-->
<style name="PersonInfoButton" parent="@android:style/ButtonBar"> <item name="android:layout_width">@dimen/d80dp</item> <item name="android:layout_height">@dimen/d32dp</item> <item name="android:textSize">@dimen/d14sp</item> </style>
注意: @android:style/ButtonBar
默认删除log.i, .v, 可以指定删除.d, .e. 参考.
# 删除Log
-assumenosideeffects class android.util.Log { *; }
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
}
在使用数据库时, 操作有些复杂, Sugar库简化使用方法. 参考.
compile 'com.github.satyan:sugar:1.3'
通过在结尾处添加一个不占位的空格(“\u200B”).
// 设置可以点击和编辑的EditText
private void setEditClickable() {
mEtEditText.setMovementMethod(LinkMovementMethod.getInstance());
Spannable spannable = new SpannableString("http://www.baidu.com");
Linkify.addLinks(spannable, Linkify.WEB_URLS);
// 添加了零宽度空格(\u200B), 才可以点击到最后的位置, 否则会触发链接
CharSequence text = TextUtils.concat(spannable, "\u200B");
mEtEditText.setText(text);
}
OK. That’s all!