- Android通用的Adapter for ListView,GridView,RecyclerView等,支持多种ItemType布局
- Android常用的工具类集合
allprojects {
repositories {
/** Github packages **/
maven {
url = "https://maven.pkg.github.com/VeiZhang/GitHubPackages-Android"
credentials {
// 输入自己的账号和个人令牌(需要 read packages权限)
// 可放项目根目录的gradle.properties 或者 local.properties中
username = getPropertyValue("GITHUB_USER") ?: project.properties['GITHUB_USER']
password = getPropertyValue("GITHUB_READ_TOKEN") ?: project.properties['GITHUB_READ_TOKEN']
}
}
}
}
- 使用
- CommonAdapter
- CommonBindingAdapter
- BaseRecyclerAdapter
- BaseRecyclerBindingAdapter
- BasePagerAdapter
- Utils
- Assist
- 版本更新
- 感谢
添加jCenter远程依赖到module里的build.gradle:
dependencies {
compile 'com.excellence:basetools:_latestVersion'
}
或者直接添加本地Library依赖
compile project(':basetoolslibrary')
注意
在使用DataBinding通用适配器时,记得开启配置
android {
dataBinding {
enabled true
}
}
大家来找茬
// 创建adapter类继承CommonAdapter
private class AppGridAdapter extends CommonAdapter<ResolveInfo>
{
public AppGridAdapter(List<ResolveInfo> data, int layoutId)
{
super(data, layoutId);
}
@Override
public void convert(ViewHolder viewHolder, ResolveInfo item, int position)
{
ImageView iconView = viewHolder.getView(android.R.id.icon);
iconView.setImageDrawable(item.loadIcon(mPackageManager));
viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager).toString());
}
}
// ViewHolder辅助方法
public <T extends View> T getView(int viewId); // 用于获取Item内的子控件,参数为控件的id
public ViewHolder setText(int viewId, int strId); // 用于设置文本,参数控件id、字符串id
public ViewHolder setBackgroundResource(int viewId, int resId); // 用于设置背景图片,参数控件id、图片id
public ViewHolder setImageResource(int viewId, int resId); // 用于设置ImageView图片资源,参数控件id、图片id
public ViewHolder setOnClickListener(int viewId, View.OnClickListener listener); // 用于点击事件监听
*
*
*
// 可拓展其他方法
// 刷新适配器
adapter.notifyNewData(data);
// 多布局适配器
private class ChatAdapter extends MultiItemTypeAdapter<People>
{
public ChatAdapter(List<People> messages)
{
super(messages);
addItemViewDelegate(new ComputerDelegate());
addItemViewDelegate(new BlueDelegate());
addItemViewDelegate(new PurpleDelegate());
}
}
// 不同的布局视图
private class ComputerDelegate implements ItemViewDelegate<People>
{
@Override
public int getItemViewLayoutId()
{
return R.layout.item_computer;
}
@Override
public boolean isForViewType(People item, int position)
{
return item instanceof ComputerData;
}
@Override
public void convert(ViewHolder viewHolder, People item, int position)
{
viewHolder.setText(R.id.computer_text, item.getMsg());
}
}
示例:CommonBindingAdapterActivity
// 直接创建CommonBindingAdapter
CommonBindingAdapter<Flower> adapter = new CommonBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower);
// 设置适配器,等同于ListView.setAdapter()、GridView.setAdapter()
mBinding.setAdapter(adapter);
示例:MultiItemTypeBindingAdapterActivity
// 使用方式同上,主要实现ViewDelegate布局视图接口
MultiItemTypeBindingAdapter<Flower> adapter = new MultiItemTypeBindingAdapter<>(mFlowers);
adapter.addItemViewDelegate(new RoseViewDelegate());
adapter.addItemViewDelegate(new TulipViewDelegate());
mBinding.setAdapter(adapter);
// 创建adapter类继承BaseRecyclerAdapter
private class AppRecyclerAdapter extends BaseRecyclerAdapter<ResolveInfo>
{
private PackageManager mPackageManager = null;
public AppRecyclerAdapter(List<ResolveInfo> data, int layoutId)
{
super(data, layoutId);
mPackageManager = getPackageManager();
}
@Override
public void convert(RecyclerViewHolder viewHolder, ResolveInfo item, int position)
{
viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager));
viewHolder.setImageDrawable(android.R.id.icon, item.loadIcon(mPackageManager));
}
}
// RecyclerViewHolder辅助方法类同ViewHolder辅助方法
*
*
*
示例:MultiItemRecyclerAdapterActivity
// 多布局适配器
private class WarAdapter extends MultiItemTypeRecyclerAdapter<People>
{
public WarAdapter(List<People> data)
{
super(data);
addItemViewDelegate(new ComputerRecyclerDelegate());
addItemViewDelegate(new BlueRecyclerDelegate());
addItemViewDelegate(new PurpleRecyclerDelegate());
}
}
// 不同的布局视图
private class ComputerRecyclerDelegate implements ItemViewDelegate<People>
{
@Override
public int getItemViewLayoutId()
{
return R.layout.item_computer;
}
@Override
public boolean isForViewType(People item, int position)
{
return item instanceof ComputerData;
}
@Override
public void convert(RecyclerViewHolder viewHolder, People item, int position)
{
viewHolder.setText(R.id.computer_text, item.getMsg());
}
}
示例:BaseRecyclerBindingAdapterActivity
// 直接创建BaseRecyclerBindingAdapter
BaseRecyclerBindingAdapter<Flower> adapter = new BaseRecyclerBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower);
// 设置适配器,等同于RecyclerView.setAdapter()
mBinding.setAdapter(adapter);
// 注意设置LayoutManager,等同于RecyclerView.setLayoutManager()
mBinding.setLayoutManager(new LinearLayoutManager(this));
示例:MultiItemTypeBindingRecyclerAdapterActivity
// 使用方式同上,主要实现ViewDelegate布局视图接口
MultiItemTypeBindingRecyclerAdapter<Flower> adapter = new MultiItemTypeBindingRecyclerAdapter<>(mFlowers);
adapter.addItemViewDelegate(new RoseViewDelegate());
adapter.addItemViewDelegate(new TulipViewDelegate());
mBinding.setAdapter(adapter);
mBinding.setLayoutManager(new LinearLayoutManager(this));
private class NumAdapter extends BasePagerAdapter
{
public NumAdapter(int pageCount)
{
super(pageCount);
}
@Override
protected View loadView(Context context, int pageIndex)
{
// 加载每页
TextView textView = new TextView(context);
textView.setText(String.valueOf(pageIndex * mNumScale));
textView.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
mNumScale *= 10;
mPageCount += 1;
// 刷新每页
mAdapter.notifyNewData(mPageCount);
}
});
return textView;
}
}
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
- Activity相关→ActivityUtils.kt
startAnotherActivity : Activity跳转
setActivityWindowAlpha : 设置Activity窗口透明值
isActivityTopStack : 判断Activity是否在栈顶
getLauncherActivity : 获取某应用入口Activity
getAppLauncherActivity : 获取某应用入口Activity
- 算法相关→AlgorithmUtils.java
getMD5 : 生成MD5
checkMD5 : 检测MD5
- AlphaUtils相关→AlphaUtils.kt
setAlpha : 设置Window透明度
setAlpha : 设置Activity的Window透明度
setAlpha : 设置Dialog的Window透明度
setAlpha : 设置DialogFragment的Window透明度
- 补间动画相关→AnimationUtils.kt
scaleView : 放大缩小动画
translateView : 平移动画
alphaView : 透明度动画
- 属性动画相关→AnimatorUtils.kt
marginLeftTranslateIn : 相邻View联动
marginLeftTranslateOut : 相邻View联动
marginUpTranslateIn : 相邻View联动
marginUpTranslateOut : 相邻View联动
marginTranslateIn : 相邻View联动
marginTranslateOut : 相邻View联动
marginByLayout : 在原基础上,移动View的外边距
marginToLayout : 设置View的外边距
heightToLayout : 变化View的高度动画
scaleView : 放大缩小动画
translateView : 平移动画
alphaView : 透明度动画
- 应用相关→AppUtils.kt
exitApp : 退出应用
relaunchApp : 重启应用
getAllApps : 获取所有应用包
getAllInstalledApps : 获取安装的全部应用
getSystemInstalledApps : 获取安装的系统应用
getUserInstalledApps : 获取安装的第三方应用
getRunningApps : 获取正在运行的应用
getPermissionList : 获取某应用的所有权限
checkPermission : 检测某应用是否有某权限
isAppInstalled : 判断应用是否安装,系统应用是否安装更新
isSystemApp : 判断是否为系统应用
isUpdatedSystemApp : 判断系统应用是否安装更新
isUserApp : 判断第三方安装应用
getAppVersionName : 获取当前应用版本名
getAppVersionCode : 获取当前应用版本号
getAppSize : 获取当前应用大小
getAppTime : 获取当前应用安装时间
getAppPath : 获取当前应用路径
getFirmwareSignature : 获取系统的签名
getAPKFileSignature : 获取apk文件的签名
getPackageSignature : 获取某安装应用的签名
isAppExist : 判断应用是否存在
isAppDebug : 判断当前应用是否是Debug版本
getMaxMemory : 当前应用分配的最大内存
getTotalMemory : 当前应用分配的总内存
getFreeMemory : 当前应用分配的剩余内存
- 音频相关→AudioUtils.kt
getMaxVolume : 获取最大音量
getMinVolume : 获取最小音量
getVolume : 获取音量
setVolume : 设置音量
adjustVolume : 调整音量
- 广播相关→BroadcastUtils.kt
registerMountAction : USB广播
registerScreenAction : 屏幕熄亮广播
registerPackageAction : 安装卸载广播
registerNetworkStateAction : 网络状态广播
registerBootAction : 开机广播
- 关闭相关→CloseUtils.kt
closeIO : 关闭IO
closeIOQuietly : 安静关闭IO
- 关闭相关→CollectionUtils.kt
removeEmptyElement : 清除集合里的空元素
listEquals : 比较两个列表元素对象是否一致
listContentEquals : 比较两个列表元素内容是否一致
- 转换相关→ConvertUtils.kt
bytes2Short : byte转short
shortToByte : short转byte
byte2BinStr : byte转二进制
byte2BinStr : byte数组转二进制
str2BinStr : 字符串转二进制字符串
bytes2HexString : byte数组转16进制字符串
hexString2Bytes : 16进制字符串转byte数组
string2HexString : 字符串转16进制字符串
hexString2String : 16进制字符串转字符串
string2Bytes : 字符串转byte数组
bytes2String : byte数组转字符串
byte2Int : byte数组转有符号int
int2Byte : int转4位byte数组
unintbyte2long : 四字节byte数组转无符号long
inputStream2OutputStream : inputStream转outPutStream
inputStream2Bytes : inputStream转bytes
inputStream2String : inputStream转字符串
inputStream2StringBuilder : inputStream转StringBuilder
- 配置存储相关→DBUtils.kt
init : 初始化,设置存储文件名
contains : 判断键值是否存在
setSetting : 存储配置
getString : 读取字符串配置
getBoolean : 读取Boolean配置
getInt : 读取int配置
getLong : 读取long配置
getFloat : 读取float配置
getStringSet : 读取Set<String>配置
remove : 删除配置
clear : 清空配置
- 分辨率相关→DensityUtils.kt
getDensity : 获取当前屏幕分辨率
getScaleDensity : 获取当前文字分辨率
getScreenWidth : 获取屏幕宽度
getScreenHeight : 获取屏幕高度
getScreenSize : 获取屏幕宽、高
dp2px : dp转px
px2dp : px转dp
sp2px : sp转px
px2sp : px转sp
- 设备相关→DeviceUtils.kt
getIMEI : 获取IMEI
getIMSI : 获取IMSI
getPhone : 获取手机号
getSIM : 获取SIM卡序列号
getSimCountry : 获取SIM卡国家
getSimOperator : 获取SIM卡运营商
getSimOperatorName : 获取SIM卡运营商名字
getSimState : 获取SIM卡状态
- 判断空相关→EmptyUtils.kt
isEmpty : 判断对象是否为空
isNotEmpty : 判断对象是否非空
- 加密解密相关→EncryptUtils.java
hashTemplate : 散列加密算法
encryptMD5 : MD5加密
encryptMD5HexString : MD5加密转16进制字符串
symmetricTemplate : 对称加密算法
encryptDES : DES加密
encryptDES2HexString : DES加密转16进制字符串
decryptDES : DES解密
decryptHexStringDES : 16进制字符串DES解密
encrypt3DES : 3DES加密
encrypt3DES2HexString : 3DES加密转16进制字符串
decrypt3DES : 3DES解密
decryptHexString3DES : 16进制字符串3DES解密
encryptAES : AES加密
encryptAES2HexString : AES加密转16进制字符串
decryptAES : AES解密
decryptHexStringAES : 16进制字符串AES解密
rsaTemplate : 非对称加密算法
encryptRSA : RSA加密
encryptRSA2HexString : RSA加密转16进制
decryptRSA : RSA解密
decryptHexStringRSA : 16进制字符串RSA解密
- 异常相关→ExceptionUtils.kt
printException : 打印异常信息字符串
- 文件流相关→FileIOUtils.kt
writeFile : 将字符串、字节数组、输入流写入文件
readFile2Bytes : 读取文件、输入流为字节数组
readFile2String : 读取文件、输入流为字符串
copyFile : 拷贝文件
- 文件相关→FileUtils.kt
createNewFile : 创建文件
deleteFile : 删除文件
mkDir : 创建目录
deleteDir : 删除目录
deletePostfixFiles : 删除目录下的某后缀文件
formatFileSize : 格式化文件大小
getAvailableSize : 获取文件已用大小
getTotalSize : 获取文件总大小
getFilesSize : 遍历目录、获取文件大小
getFileSize : 获取文件大小
getDirSize : 遍历目录大小
getDirFreeSpace : 获取目录剩余空间
getDirTotalSpace : 获取目录总空间
getDirUsableSpace : 获取目录可用空间
chmod : 修改目录、文件权限
isFileExists : 判断文件或目录是否存在
getFileLastModified : 读取文件最后的修改时间
getFileMd5 : 读取文件MD5值
- Handler相关→HandlerUtils.java
HandlerHolder : 使用必读
- HTTP相关→HttpUtils.kt
checkURL : 检测有效的URL
checkHttpURL : 检测Http、Https,没有则增加前缀http://
appendURLPath : 拼接url
isUrlExists : 通过访问的方式检查链接是否有效
convertHttpUrl : 转换链接中中文字符
convertInputStream : 通过类型转换流
setConnectParam : 设置请求头信息
printHeader : 打印全部请求头信息
getHeader : 获取具体的请求头信息
getContentHeader : 获取具体的请求头信息
- Image相关→ImageUtils.kt
resource2Drawable : 资源转Drawable
resource2Bitmap : 资源转Bitmap
drawable2Bitmap : drawable转bitmap
bitmap2Drawable : bitmap转drawable
view2Bitmap : view转Bitmap
shotActivity : Activity截图
createBitmap : 创建空白Bitmap
addBitmapShadows : 增加遮罩
zoomImg : 图片等比缩小
setRendScriptCacheDir : 高斯模糊配置,Android7.0上却会导致应用 crash
- 常见的Intent相关→IntentUtils.kt
getLaunchAppIntent : 获取某应用入口Intent
isIntentAvailable : 判断Intent是否存在
startIntent : Intent跳转
getSettingIntent : 跳转Settings
getWiFiIntent : 隐式开启WiFi
getDirectWiFiIntent : 直接开启WiFi
getRoamingIntent : 跳转到移动网络设置
getPermissionIntent : 开启权限设置
getLocationIntent : 开启定位设置
getBluetoothIntent : 开启蓝牙设置
getLocaleIntent : 开启语言设置
getAppIntent : 跳转应用程序列表界面
getAllAppIntent : 跳转到应用程序界面(所有的)
getInstalledAppIntent : 跳转到应用程序界面(已安装的)
getStorageIntent : 开启存储设置
getAccessibilityIntent : 开启辅助设置
getSearchIntent : 跳转到搜索设置
getInputMethodIntent : 跳转输入法设置
getInstallIntent : 安装应用
getUninstallIntent : 卸载应用
getShareTextIntent : 分享文本
getShareImageIntent : 分享图片
getDialIntent : 跳转拨号界面
getCallIntent : 拨打电话
getSmsIntent : 跳转短信界面
getSendSmsIntent : 发送短信
getEmailIntent : 发送邮件
getCaptureIntent : 打开相机
getVideoIntent : 播放本地视频
getNetVideoIntent : 播放网络视频
getAudioIntent : 播放本地音乐
fileChooseIntent : 文件管理器选择
fileOpenIntent : 打开文件
- 键盘相关→KeyboardUtils.kt
hideSoftInput : 隐藏软键盘
showSoftInput : 打开软键盘
toggleSoftInput : 如果输入法在窗口上已经显示,则隐藏,反之则显示
clickBlankArea2HideSoftInput : 击屏幕空白区域隐藏软键盘
- 按键速度相关→KeyController.kt
dispatchKeyEvent : 控制按键速度
- 按键相关→KeyEventUtils.kt
listKeyUp : 向上循环
listKeyDown : 向下循环
listKeyLeft : 向左循环
listKeyRight : 向右循环
listPageUp : 上翻页循环
listPageDown : 下翻页循环
- LiveData相关→LiveDataUtils.kt
TIMESTAMP_LIVE_DATA : 秒级时间戳
MILL_TIMESTAMP_LIVE_DATA : 毫秒级时间戳
timer : 定时器
- 数学函数相关→MathUtils.kt
gcd : 求最大公约数
fraction : 约分
- 多媒体相关→MediaUtils.kt
getKey : 读取多媒体信息的键
getAlbum : 读取多媒体信息的专辑
getArtist : 读取多媒体信息的艺术家
getAuthor : 读取多媒体信息的作者
getComposer : 读取多媒体信息的作曲家
getDate : 读取多媒体信息的日期
getGenre : 读取多媒体信息的分类
getTitle : 读取多媒体信息的名称
getYear : 读取多媒体信息的年份
getDuration : 读取多媒体信息的时长
getMimeType : 读取多媒体信息的类型
getHasAudio : 读取多媒体信息是否有音频
getHasVideo : 读取多媒体信息是否有视频
getWidth : 读取多媒体信息的宽度
getHeight : 读取多媒体信息的高度
getBitrate : 读取多媒体信息的码率
- 网络相关→NetworkUtils.kt
getActiveNetworkInfo : 获取活动的网络信息
isConnected : 检查网络是否连接
isAvailableByPing : 判断网络是否可用
isMobileDataEnabled : 判断移动数据是否打开
setMobileDataEnabled : 打开或关闭移动数据(舍弃不可用)
is4G : 判断是否是4G网络
isWiFiEnabled : 判断是否打开WiFi
setWiFiEnabled : 打开或关闭WiFi
isEthConnected : 判断以太网是否连接
isEthAvailable : 判断以太网是否可用
isWiFiConnected : 判断WiFi是否连接
isWiFiAvailable : 判断WiFi是否可用
isWiFiAvailableByPing : 通过ping的方式判断WiFi是否可用
getNetworkOperatorName : 获取网络运营商名称
getNetworkType : 获取当前网络类型
getIPAddress : 获取网络IP地址
getDomainAddress : 根据域名获取ip
readMac : 读取Mac地址:优先获取Eth的MAC,当Eth为空,接着获取WiFi的MAC
getMac : 获取Mac地址:使用Eth时读取Eth的MAC,否则读取WiFi的MAC
getWiredMac : 获取有线Mac地址
getWirelessMac : 获取无线Mac地址
formatTcpSpeed : 格式化比特率
formatNetSpeed : 格式化网速
- 解析字段值相关→ParseUtils.kt
number : 数值/评分解析
timestamp : 文本时间解析
year : 文本时间解析出年份
- 路径相关→PathUtils.kt
getRootPath : 获取根路径
getDataPath : 获取数据路径
getDownloadCachePath : 获取下载缓存路径
getInternalAppDataPath : 获取内存应用数据路径
getInternalAppCodeCacheDir : 获取内存应用代码缓存路径
getInternalAppCachePath : 获取内存应用缓存路径
getInternalAppDbsPath : 获取内存应用数据库路径
getInternalAppDbPath : 获取内存应用数据库路径
getInternalAppFilesPath : 获取内存应用文件路径
getInternalAppSpPath : 获取内存应用 SP 路径
getInternalAppNoBackupFilesPath : 获取内存应用未备份文件路径
getExternalStoragePath : 获取外存路径
getExternalMusicPath : 获取外存音乐路径
getExternalPodcastsPath : 获取外存播客路径
getExternalRingtonesPath : 获取外存铃声路径
getExternalAlarmsPath : 获取外存闹铃路径
getExternalNotificationsPath : 获取外存通知路径
getExternalPicturesPath : 获取外存图片路径
getExternalMoviesPath : 获取外存影片路径
getExternalDownloadsPath : 获取外存下载路径
getExternalDcimPath : 获取外存数码相机图片路径
getExternalDocumentsPath : 获取外存文档路径
getExternalAppDataPath : 获取外存应用数据路径
getExternalAppCachePath : 获取外存应用缓存路径
getExternalAppFilesPath : 获取外存应用文件路径
getExternalAppMusicPath : 获取外存应用音乐路径
getExternalAppPodcastsPath : 获取外存应用播客路径
getExternalAppRingtonesPath : 获取外存应用铃声路径
getExternalAppAlarmsPath : 获取外存应用闹铃路径
getExternalAppNotificationsPath : 获取外存应用通知路径
getExternalAppPicturesPath : 获取外存应用图片路径
getExternalAppMoviesPath : 获取外存应用影片路径
getExternalAppDownloadPath : 获取外存应用下载路径
getExternalAppDcimPath : 获取外存应用数码相机图片路径
getExternalAppDocumentsPath : 获取外存应用文档路径
getExternalAppObbPath : 获取外存应用 OBB 路径
- 拼音相关→PinyinUtils.java
ccs2Pinyin : 中文转拼音
getPinyinHeadChar : 获取中文首字母
getPinyinHeadChars : 获取所有中文首字母
isAllHanzi : 判断是否全是汉字
- 反射相关→ReflectUtils.kt
getDeclaredFields : 获取类中所有成员,能访问类中所有的字段,与public、private、protect无关,不能访问从其它类继承来的方法
getFields : 获取类中所有的公有成员,只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法
setFieldValue : 设置类中指定成员变量的值,一般是设置私有成员变量值
getFieldValue : 获取类中指定成员变量的值,一般是获取私有成员变量值
getDeclaredMethods : 获取类中所有方法,能访问类中所有的方法,与public、private、protect无关,不能访问从其它类继承来的方法
getMetods : 获取类中所有的公有方法,只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法
invokeDeclaredMethod : 调用类中指定的方法,能访问类中所有的方法,与public、private、protect无关,不能访问从其它类继承来的方法
invokeMethod : 调用类中指定的公有方法,只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法
newInstance : 创建带参数的构造函数,返回类对象
isInstance : 判断是否为某个类的实例
getAnnotation : 获取存在的、指定类型的注解
getAnnotations : 获取类中存在的所有注解
getDeclaredAnnotation : 获取存在的、指定类型的注解,不包括继承的注解
getDeclaredAnnotations : 获取类中存在的所有注解,不包括继承的注解
- 正则表达式相关→RegexUtils.kt
isMAC : 验证MAC地址
isMobileSimple : 验证手机号(简单)
isMobileExact : 验证手机号(精确)
isTel : 验证电话号码
isIDCard15 : 验证身份证号码15位
isIDCard18 : 验证身份证号码18位
isEmail : 验证邮箱
isURL : 验证URL
isZh : 验证汉字
isUsername : 验证用户名
isDate : 验证yyyy-MM-dd格式的日期校验,已考虑平闰年
isIP : 验证IP地址
isMatch : 判断是否匹配正则
getMatch : 获取第一个正则匹配的部分
getMatches : 获取正则匹配的部分
getSplits : 获取正则匹配分组
getReplaceFirst : 替换正则匹配的第一部分
getReplaceAll : 替换所有正则匹配的部分
- 资源相关→ResourceUtils.kt
getName : 解析资源的全名
getEntryName : 解析资源名
getTypeName : 解析资源类型名
getPackageName : 解析资源的包名
getIdentifier : 获取资源Id
getIdentifiers : 遍历读取资源Id
copyFileFromAssets : 拷贝assets文件到指定目录
copyFileFromRaw : 拷贝raw资源到指定目录文件
readAsset : 读取asset文件转字符串
getLocal : 获取当前系统语言
getLanguage : 获取当前系统语言
getCountry : 获取当前系统语言国家
getIdentifier : 跨APP,读取其他应用的资源
- RxJava相关→RxJavaUtils.kt
dispose : 销毁订阅
- 命令相关→ShellUtils.kt
execProcessBuilderCommand : 执行命令
execRuntimeCommand : 执行命令
- 按键快捷键相关→ShortcutTrigger.kt
inputKey : 连续的按键生成快捷键,如四位数字键快捷键 0000
- SD、TF等存储相关→StorageUtils.kt
registerStorageListener : USB/SD设备拔插监听
getStorageList : 获取所有的内置、外置存储设备
getStorageVolumeList : 获取存储卷的相关信息
- 字符串相关→StringUtils.kt
isEmpty : 判断字符串是否为空
checkNULL : 判断字符串是否为空,是否是"NULL"字符串
equals : 比较字符串是否相等
equalsIgnoreCase : 比较字符串是否相等,忽略大小写
contains : 判断字符一是否包含字符串二
containsIgnoreCase : 判断字符一是否包含字符串二,忽略大小写
- SurfaceView相关→SurfaceViewUtils.kt
clearSurfaceView : 清除SurfaceView的最后一帧画面
- 系统属性相关→SystemPropertyUtils.java
get : 获取String类型系统属性
getBoolean : 获取Boolean类型系统属性
getInt : 获取int类型系统属性
getLong : 获取long类型系统属性
set : 设置系统属性
getLinuxKernelVersion : 读取kernel版本
- 时间相关→TimeUtils.java
millisec2String : 毫秒时间戳转时间字符串
sec2String : 秒时间戳转时间字符串
string2Date : 时间字符串转Date类型
string2Millisec : 时间字符串转毫秒时间戳
date2String : Date转时间字符串
getTimeSpan : 获取两个时间差
getNowTimeMillis : 获取当前毫秒时间戳
getNowTimeDate : 获取当前Date时间
getNowTimeString : 获取当前时间字符串
getTimeSpanByNow : 获取某时间与当前时间的差
isSameDay : 判断时间是否是同一天
isToday : 判断时间是否是今天
getTodayZero : 获取当天零点
isLeapYear : 判断是否是闰年
getWeek : 获取星期几
getWeekOfMonth : 获取月份中第几周
getWeekOfYear : 获取年份中的第几周
getChineseZodiac : 获取生肖
getZodiac : 获取星座
is24HoursFormat : 判断当前时间制是否是24h
seconds2String : 秒转 分:秒 字符串
milliSeconds2String : 毫秒转 分:秒 字符串
seconds2HourString : 秒转 时:分:秒 字符串
milliSeconds2HourString : 毫秒转 时:分:秒 字符串
createSimpleDateFormat : 创建时间格式化
- URI相关→UriUtils.java
getFilePathByUri : 从Uri中读取文件路径
- View相关→ViewUtils.kt
observeViewLayout : 监听绘制完成
observeViewLayoutForever : 监听绘制完成
- WebView相关→WebViewUtils.java
callOnWebviewThread : 发送js指令
callJavaScript : 发送js指令
hookWebView : 系统应用绕过UID 是 root 检测
- WeakHandler转载→WeakHandler.java
WeakHandler : 使用描述,性能优化,避免内存泄漏
- HanziToPinyin转载→HanziToPinyin.java
HanziToPinyin : Android汉字转拼音类
版本 | 描述 |
---|---|
1.3.1 | 新增工具类 & 方法 2022-05-27 |
1.3.0 | 转换Kotlin 2022-04-15 |
1.2.9 | 新增ListAdapter,补充一些工具方法 2020-08-24 |
1.2.8 | 兼容AndroidX 2020-04-09 |
1.2.7 | 新增工具类 2019-10-15 |
1.2.6 | 新增工具方法,优化Adapter 2018-9-13 |
1.2.5 | 优化RecyclerView的监听事件,修复多布局管理器bug 2018-3-7 |
1.2.4 | 新增:开启DataBinding,ListView、GridView、RecyclerView通用适配器,一些辅助方法 2017-10-18 |
1.2.3 | 新增ViewPager通用适配器;拓展工具类:文件、资源、反射、键盘等 2017-7-21 |
1.2.2 | 拓展配置文件存储 2017-5-12 |
1.2.1 | 支持通用适配器中的多种布局 2017-4-20 |
1.2.0 | 新增网络、拼音、异常打印等工具类 2017-4-13 |
1.1.0 | Utils增加一些常用的工具类:应用、数据库、分辨率、文件、正则表达式、命令、时间等 2017-2-23 |
1.0.0 | 创建ListView、GridView、RecyclerView的通用适配器,一些辅助方法 2016-12-20 |