项目作者: VeiZhang

项目描述 :
Android通用适配器和常用的工具类
高级语言: Java
项目地址: git://github.com/VeiZhang/BaseToolsLibrary.git


Android通用适配器和常用的工具类

  • Android通用的Adapter for ListView,GridView,RecyclerView等,支持多种ItemType布局
  • Android常用的工具类集合


  1. allprojects {
  2. repositories {
  3. /** Github packages **/
  4. maven {
  5. url = "https://maven.pkg.github.com/VeiZhang/GitHubPackages-Android"
  6. credentials {
  7. // 输入自己的账号和个人令牌(需要 read packages权限)
  8. // 可放项目根目录的gradle.properties 或者 local.properties中
  9. username = getPropertyValue("GITHUB_USER") ?: project.properties['GITHUB_USER']
  10. password = getPropertyValue("GITHUB_READ_TOKEN") ?: project.properties['GITHUB_READ_TOKEN']
  11. }
  12. }
  13. }
  14. }

Download

" class="reference-link">目录


" class="reference-link">导入Android Studio

添加jCenter远程依赖到module里的build.gradle:

  1. dependencies {
  2. compile 'com.excellence:basetools:_latestVersion'
  3. }

或者直接添加本地Library依赖

  1. compile project(':basetoolslibrary')

注意

在使用DataBinding通用适配器时,记得开启配置

  1. android {
  2. dataBinding {
  3. enabled true
  4. }
  5. }


大家来找茬

icon_adapter

icon_common_adapter

icon_multi_adapter

" class="reference-link">CommonAdapter

" class="reference-link">ListView,GridView的通用适配器

示例:CommonAdapterActivity

  1. // 创建adapter类继承CommonAdapter
  2. private class AppGridAdapter extends CommonAdapter<ResolveInfo>
  3. {
  4. public AppGridAdapter(List<ResolveInfo> data, int layoutId)
  5. {
  6. super(data, layoutId);
  7. }
  8. @Override
  9. public void convert(ViewHolder viewHolder, ResolveInfo item, int position)
  10. {
  11. ImageView iconView = viewHolder.getView(android.R.id.icon);
  12. iconView.setImageDrawable(item.loadIcon(mPackageManager));
  13. viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager).toString());
  14. }
  15. }
  1. // ViewHolder辅助方法
  2. public <T extends View> T getView(int viewId); // 用于获取Item内的子控件,参数为控件的id
  3. public ViewHolder setText(int viewId, int strId); // 用于设置文本,参数控件id、字符串id
  4. public ViewHolder setBackgroundResource(int viewId, int resId); // 用于设置背景图片,参数控件id、图片id
  5. public ViewHolder setImageResource(int viewId, int resId); // 用于设置ImageView图片资源,参数控件id、图片id
  6. public ViewHolder setOnClickListener(int viewId, View.OnClickListener listener); // 用于点击事件监听
  7. *
  8. *
  9. *
  10. // 可拓展其他方法
  1. // 刷新适配器
  2. adapter.notifyNewData(data);

" class="reference-link">ListView,GridView的多布局通用适配器

示例:MultiItemAdapterActivity

  1. // 多布局适配器
  2. private class ChatAdapter extends MultiItemTypeAdapter<People>
  3. {
  4. public ChatAdapter(List<People> messages)
  5. {
  6. super(messages);
  7. addItemViewDelegate(new ComputerDelegate());
  8. addItemViewDelegate(new BlueDelegate());
  9. addItemViewDelegate(new PurpleDelegate());
  10. }
  11. }
  12. // 不同的布局视图
  13. private class ComputerDelegate implements ItemViewDelegate<People>
  14. {
  15. @Override
  16. public int getItemViewLayoutId()
  17. {
  18. return R.layout.item_computer;
  19. }
  20. @Override
  21. public boolean isForViewType(People item, int position)
  22. {
  23. return item instanceof ComputerData;
  24. }
  25. @Override
  26. public void convert(ViewHolder viewHolder, People item, int position)
  27. {
  28. viewHolder.setText(R.id.computer_text, item.getMsg());
  29. }
  30. }


" class="reference-link">CommonBindingAdapter

" class="reference-link">开启DataBinding,ListView、GridView通用适配器

示例:CommonBindingAdapterActivity

  1. // 直接创建CommonBindingAdapter
  2. CommonBindingAdapter<Flower> adapter = new CommonBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower);
  3. // 设置适配器,等同于ListView.setAdapter()、GridView.setAdapter()
  4. mBinding.setAdapter(adapter);

" class="reference-link">开启DataBinding,ListView,GridView的多布局通用适配器

示例:MultiItemTypeBindingAdapterActivity

  1. // 使用方式同上,主要实现ViewDelegate布局视图接口
  2. MultiItemTypeBindingAdapter<Flower> adapter = new MultiItemTypeBindingAdapter<>(mFlowers);
  3. adapter.addItemViewDelegate(new RoseViewDelegate());
  4. adapter.addItemViewDelegate(new TulipViewDelegate());
  5. mBinding.setAdapter(adapter);


" class="reference-link">BaseRecyclerAdapter

" class="reference-link">RecyclerView的通用适配器

示例:RecyclerAdapterActivity

  1. // 创建adapter类继承BaseRecyclerAdapter
  2. private class AppRecyclerAdapter extends BaseRecyclerAdapter<ResolveInfo>
  3. {
  4. private PackageManager mPackageManager = null;
  5. public AppRecyclerAdapter(List<ResolveInfo> data, int layoutId)
  6. {
  7. super(data, layoutId);
  8. mPackageManager = getPackageManager();
  9. }
  10. @Override
  11. public void convert(RecyclerViewHolder viewHolder, ResolveInfo item, int position)
  12. {
  13. viewHolder.setText(android.R.id.text1, item.loadLabel(mPackageManager));
  14. viewHolder.setImageDrawable(android.R.id.icon, item.loadIcon(mPackageManager));
  15. }
  16. }
  1. // RecyclerViewHolder辅助方法类同ViewHolder辅助方法
  2. *
  3. *
  4. *

" class="reference-link">RecyclerView的多布局通用适配器

示例:MultiItemRecyclerAdapterActivity

  1. // 多布局适配器
  2. private class WarAdapter extends MultiItemTypeRecyclerAdapter<People>
  3. {
  4. public WarAdapter(List<People> data)
  5. {
  6. super(data);
  7. addItemViewDelegate(new ComputerRecyclerDelegate());
  8. addItemViewDelegate(new BlueRecyclerDelegate());
  9. addItemViewDelegate(new PurpleRecyclerDelegate());
  10. }
  11. }
  12. // 不同的布局视图
  13. private class ComputerRecyclerDelegate implements ItemViewDelegate<People>
  14. {
  15. @Override
  16. public int getItemViewLayoutId()
  17. {
  18. return R.layout.item_computer;
  19. }
  20. @Override
  21. public boolean isForViewType(People item, int position)
  22. {
  23. return item instanceof ComputerData;
  24. }
  25. @Override
  26. public void convert(RecyclerViewHolder viewHolder, People item, int position)
  27. {
  28. viewHolder.setText(R.id.computer_text, item.getMsg());
  29. }
  30. }


" class="reference-link">BaseRecyclerBindingAdapter

" class="reference-link">开启DataBinding,RecyclerView的通用适配器

示例:BaseRecyclerBindingAdapterActivity

  1. // 直接创建BaseRecyclerBindingAdapter
  2. BaseRecyclerBindingAdapter<Flower> adapter = new BaseRecyclerBindingAdapter<>(mFlowers, R.layout.item_flower, BR.flower);
  3. // 设置适配器,等同于RecyclerView.setAdapter()
  4. mBinding.setAdapter(adapter);
  5. // 注意设置LayoutManager,等同于RecyclerView.setLayoutManager()
  6. mBinding.setLayoutManager(new LinearLayoutManager(this));

" class="reference-link">开启DataBinding,RecyclerView的多布局通用适配器

示例:MultiItemTypeBindingRecyclerAdapterActivity

  1. // 使用方式同上,主要实现ViewDelegate布局视图接口
  2. MultiItemTypeBindingRecyclerAdapter<Flower> adapter = new MultiItemTypeBindingRecyclerAdapter<>(mFlowers);
  3. adapter.addItemViewDelegate(new RoseViewDelegate());
  4. adapter.addItemViewDelegate(new TulipViewDelegate());
  5. mBinding.setAdapter(adapter);
  6. mBinding.setLayoutManager(new LinearLayoutManager(this));


" class="reference-link">BasePagerAdapter

" class="reference-link">ViewPager通用适配器

示例:ViewPagerAdapterActivity

  1. private class NumAdapter extends BasePagerAdapter
  2. {
  3. public NumAdapter(int pageCount)
  4. {
  5. super(pageCount);
  6. }
  7. @Override
  8. protected View loadView(Context context, int pageIndex)
  9. {
  10. // 加载每页
  11. TextView textView = new TextView(context);
  12. textView.setText(String.valueOf(pageIndex * mNumScale));
  13. textView.setOnClickListener(new View.OnClickListener()
  14. {
  15. @Override
  16. public void onClick(View v)
  17. {
  18. mNumScale *= 10;
  19. mPageCount += 1;
  20. // 刷新每页
  21. mAdapter.notifyNewData(mPageCount);
  22. }
  23. });
  24. return textView;
  25. }
  26. }


" class="reference-link">Utils

" class="reference-link">权限

  1. <uses-permission android:name="android.permission.GET_TASKS"></uses-permission>
  2. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
  3. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  4. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  5. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  6. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  7. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
  8. <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

" class="reference-link">常用工具类

  • Activity相关→ActivityUtils.kt

    1. startAnotherActivity : Activity跳转
    2. setActivityWindowAlpha : 设置Activity窗口透明值
    3. isActivityTopStack : 判断Activity是否在栈顶
    4. getLauncherActivity : 获取某应用入口Activity
    5. getAppLauncherActivity : 获取某应用入口Activity
  • 算法相关→AlgorithmUtils.java

    1. getMD5 : 生成MD5
    2. checkMD5 : 检测MD5
  • AlphaUtils相关→AlphaUtils.kt

    1. setAlpha : 设置Window透明度
    2. setAlpha : 设置ActivityWindow透明度
    3. setAlpha : 设置DialogWindow透明度
    4. setAlpha : 设置DialogFragmentWindow透明度
  • 补间动画相关→AnimationUtils.kt

    1. scaleView : 放大缩小动画
    2. translateView : 平移动画
    3. alphaView : 透明度动画
  • 属性动画相关→AnimatorUtils.kt

    1. marginLeftTranslateIn : 相邻View联动
    2. marginLeftTranslateOut : 相邻View联动
    3. marginUpTranslateIn : 相邻View联动
    4. marginUpTranslateOut : 相邻View联动
    5. marginTranslateIn : 相邻View联动
    6. marginTranslateOut : 相邻View联动
    7. marginByLayout : 在原基础上,移动View的外边距
    8. marginToLayout : 设置View的外边距
    9. heightToLayout : 变化View的高度动画
    10. scaleView : 放大缩小动画
    11. translateView : 平移动画
    12. alphaView : 透明度动画
  • 应用相关→AppUtils.kt

    1. exitApp : 退出应用
    2. relaunchApp : 重启应用
    3. getAllApps : 获取所有应用包
    4. getAllInstalledApps : 获取安装的全部应用
    5. getSystemInstalledApps : 获取安装的系统应用
    6. getUserInstalledApps : 获取安装的第三方应用
    7. getRunningApps : 获取正在运行的应用
    8. getPermissionList : 获取某应用的所有权限
    9. checkPermission : 检测某应用是否有某权限
    10. isAppInstalled : 判断应用是否安装,系统应用是否安装更新
    11. isSystemApp : 判断是否为系统应用
    12. isUpdatedSystemApp : 判断系统应用是否安装更新
    13. isUserApp : 判断第三方安装应用
    14. getAppVersionName : 获取当前应用版本名
    15. getAppVersionCode : 获取当前应用版本号
    16. getAppSize : 获取当前应用大小
    17. getAppTime : 获取当前应用安装时间
    18. getAppPath : 获取当前应用路径
    19. getFirmwareSignature : 获取系统的签名
    20. getAPKFileSignature : 获取apk文件的签名
    21. getPackageSignature : 获取某安装应用的签名
    22. isAppExist : 判断应用是否存在
    23. isAppDebug : 判断当前应用是否是Debug版本
    24. getMaxMemory : 当前应用分配的最大内存
    25. getTotalMemory : 当前应用分配的总内存
    26. getFreeMemory : 当前应用分配的剩余内存
  • 音频相关→AudioUtils.kt

    1. getMaxVolume : 获取最大音量
    2. getMinVolume : 获取最小音量
    3. getVolume : 获取音量
    4. setVolume : 设置音量
    5. adjustVolume : 调整音量
  • 广播相关→BroadcastUtils.kt

    1. registerMountAction : USB广播
    2. registerScreenAction : 屏幕熄亮广播
    3. registerPackageAction : 安装卸载广播
    4. registerNetworkStateAction : 网络状态广播
    5. registerBootAction : 开机广播
  • 关闭相关→CloseUtils.kt

    1. closeIO : 关闭IO
    2. closeIOQuietly : 安静关闭IO
  • 关闭相关→CollectionUtils.kt

    1. removeEmptyElement : 清除集合里的空元素
    2. listEquals : 比较两个列表元素对象是否一致
    3. listContentEquals : 比较两个列表元素内容是否一致
  • 转换相关→ConvertUtils.kt

    1. bytes2Short : byteshort
    2. shortToByte : shortbyte
    3. byte2BinStr : byte转二进制
    4. byte2BinStr : byte数组转二进制
    5. str2BinStr : 字符串转二进制字符串
    6. bytes2HexString : byte数组转16进制字符串
    7. hexString2Bytes : 16进制字符串转byte数组
    8. string2HexString : 字符串转16进制字符串
    9. hexString2String : 16进制字符串转字符串
    10. string2Bytes : 字符串转byte数组
    11. bytes2String : byte数组转字符串
    12. byte2Int : byte数组转有符号int
    13. int2Byte : int4byte数组
    14. unintbyte2long : 四字节byte数组转无符号long
    15. inputStream2OutputStream : inputStreamoutPutStream
    16. inputStream2Bytes : inputStreambytes
    17. inputStream2String : inputStream转字符串
    18. inputStream2StringBuilder : inputStreamStringBuilder
  • 配置存储相关→DBUtils.kt

    1. init : 初始化,设置存储文件名
    2. contains : 判断键值是否存在
    3. setSetting : 存储配置
    4. getString : 读取字符串配置
    5. getBoolean : 读取Boolean配置
    6. getInt : 读取int配置
    7. getLong : 读取long配置
    8. getFloat : 读取float配置
    9. getStringSet : 读取Set<String>配置
    10. remove : 删除配置
    11. clear : 清空配置
  • 分辨率相关→DensityUtils.kt

    1. getDensity : 获取当前屏幕分辨率
    2. getScaleDensity : 获取当前文字分辨率
    3. getScreenWidth : 获取屏幕宽度
    4. getScreenHeight : 获取屏幕高度
    5. getScreenSize : 获取屏幕宽、高
    6. dp2px : dppx
    7. px2dp : pxdp
    8. sp2px : sppx
    9. px2sp : pxsp
  • 设备相关→DeviceUtils.kt

    1. getIMEI : 获取IMEI
    2. getIMSI : 获取IMSI
    3. getPhone : 获取手机号
    4. getSIM : 获取SIM卡序列号
    5. getSimCountry : 获取SIM卡国家
    6. getSimOperator : 获取SIM卡运营商
    7. getSimOperatorName : 获取SIM卡运营商名字
    8. getSimState : 获取SIM卡状态
  • 判断空相关→EmptyUtils.kt

    1. isEmpty : 判断对象是否为空
    2. isNotEmpty : 判断对象是否非空
  • 加密解密相关→EncryptUtils.java

    1. hashTemplate : 散列加密算法
    2. encryptMD5 : MD5加密
    3. encryptMD5HexString : MD5加密转16进制字符串
    4. symmetricTemplate : 对称加密算法
    5. encryptDES : DES加密
    6. encryptDES2HexString : DES加密转16进制字符串
    7. decryptDES : DES解密
    8. decryptHexStringDES : 16进制字符串DES解密
    9. encrypt3DES : 3DES加密
    10. encrypt3DES2HexString : 3DES加密转16进制字符串
    11. decrypt3DES : 3DES解密
    12. decryptHexString3DES : 16进制字符串3DES解密
    13. encryptAES : AES加密
    14. encryptAES2HexString : AES加密转16进制字符串
    15. decryptAES : AES解密
    16. decryptHexStringAES : 16进制字符串AES解密
    17. rsaTemplate : 非对称加密算法
    18. encryptRSA : RSA加密
    19. encryptRSA2HexString : RSA加密转16进制
    20. decryptRSA : RSA解密
    21. decryptHexStringRSA : 16进制字符串RSA解密
  • 异常相关→ExceptionUtils.kt

    1. printException : 打印异常信息字符串
  • 文件流相关→FileIOUtils.kt

    1. writeFile : 将字符串、字节数组、输入流写入文件
    2. readFile2Bytes : 读取文件、输入流为字节数组
    3. readFile2String : 读取文件、输入流为字符串
    4. copyFile : 拷贝文件
  • 文件相关→FileUtils.kt

    1. createNewFile : 创建文件
    2. deleteFile : 删除文件
    3. mkDir : 创建目录
    4. deleteDir : 删除目录
    5. deletePostfixFiles : 删除目录下的某后缀文件
    6. formatFileSize : 格式化文件大小
    7. getAvailableSize : 获取文件已用大小
    8. getTotalSize : 获取文件总大小
    9. getFilesSize : 遍历目录、获取文件大小
    10. getFileSize : 获取文件大小
    11. getDirSize : 遍历目录大小
    12. getDirFreeSpace : 获取目录剩余空间
    13. getDirTotalSpace : 获取目录总空间
    14. getDirUsableSpace : 获取目录可用空间
    15. chmod : 修改目录、文件权限
    16. isFileExists : 判断文件或目录是否存在
    17. getFileLastModified : 读取文件最后的修改时间
    18. getFileMd5 : 读取文件MD5
  • Handler相关→HandlerUtils.java

    1. HandlerHolder : 使用必读
  • HTTP相关→HttpUtils.kt

    1. checkURL : 检测有效的URL
    2. checkHttpURL : 检测HttpHttps,没有则增加前缀http://
    3. appendURLPath : 拼接url
    4. isUrlExists : 通过访问的方式检查链接是否有效
    5. convertHttpUrl : 转换链接中中文字符
    6. convertInputStream : 通过类型转换流
    7. setConnectParam : 设置请求头信息
    8. printHeader : 打印全部请求头信息
    9. getHeader : 获取具体的请求头信息
    10. getContentHeader : 获取具体的请求头信息
  • Image相关→ImageUtils.kt

    1. resource2Drawable : 资源转Drawable
    2. resource2Bitmap : 资源转Bitmap
    3. drawable2Bitmap : drawablebitmap
    4. bitmap2Drawable : bitmapdrawable
    5. view2Bitmap : viewBitmap
    6. shotActivity : Activity截图
    7. createBitmap : 创建空白Bitmap
    8. addBitmapShadows : 增加遮罩
    9. zoomImg : 图片等比缩小
    10. setRendScriptCacheDir : 高斯模糊配置,Android7.0上却会导致应用 crash
  • 常见的Intent相关→IntentUtils.kt

    1. getLaunchAppIntent : 获取某应用入口Intent
    2. isIntentAvailable : 判断Intent是否存在
    3. startIntent : Intent跳转
    4. getSettingIntent : 跳转Settings
    5. getWiFiIntent : 隐式开启WiFi
    6. getDirectWiFiIntent : 直接开启WiFi
    7. getRoamingIntent : 跳转到移动网络设置
    8. getPermissionIntent : 开启权限设置
    9. getLocationIntent : 开启定位设置
    10. getBluetoothIntent : 开启蓝牙设置
    11. getLocaleIntent : 开启语言设置
    12. getAppIntent : 跳转应用程序列表界面
    13. getAllAppIntent : 跳转到应用程序界面(所有的)
    14. getInstalledAppIntent : 跳转到应用程序界面(已安装的)
    15. getStorageIntent : 开启存储设置
    16. getAccessibilityIntent : 开启辅助设置
    17. getSearchIntent : 跳转到搜索设置
    18. getInputMethodIntent : 跳转输入法设置
    19. getInstallIntent : 安装应用
    20. getUninstallIntent : 卸载应用
    21. getShareTextIntent : 分享文本
    22. getShareImageIntent : 分享图片
    23. getDialIntent : 跳转拨号界面
    24. getCallIntent : 拨打电话
    25. getSmsIntent : 跳转短信界面
    26. getSendSmsIntent : 发送短信
    27. getEmailIntent : 发送邮件
    28. getCaptureIntent : 打开相机
    29. getVideoIntent : 播放本地视频
    30. getNetVideoIntent : 播放网络视频
    31. getAudioIntent : 播放本地音乐
    32. fileChooseIntent : 文件管理器选择
    33. fileOpenIntent : 打开文件
  • 键盘相关→KeyboardUtils.kt

    1. hideSoftInput : 隐藏软键盘
    2. showSoftInput : 打开软键盘
    3. toggleSoftInput : 如果输入法在窗口上已经显示,则隐藏,反之则显示
    4. clickBlankArea2HideSoftInput : 击屏幕空白区域隐藏软键盘
  • 按键速度相关→KeyController.kt

    1. dispatchKeyEvent : 控制按键速度
  • 按键相关→KeyEventUtils.kt

    1. listKeyUp : 向上循环
    2. listKeyDown : 向下循环
    3. listKeyLeft : 向左循环
    4. listKeyRight : 向右循环
    5. listPageUp : 上翻页循环
    6. listPageDown : 下翻页循环
  • LiveData相关→LiveDataUtils.kt

    1. TIMESTAMP_LIVE_DATA : 秒级时间戳
    2. MILL_TIMESTAMP_LIVE_DATA : 毫秒级时间戳
    3. timer : 定时器
  • 数学函数相关→MathUtils.kt

    1. gcd : 求最大公约数
    2. fraction : 约分
  • 多媒体相关→MediaUtils.kt

    1. getKey : 读取多媒体信息的键
    2. getAlbum : 读取多媒体信息的专辑
    3. getArtist : 读取多媒体信息的艺术家
    4. getAuthor : 读取多媒体信息的作者
    5. getComposer : 读取多媒体信息的作曲家
    6. getDate : 读取多媒体信息的日期
    7. getGenre : 读取多媒体信息的分类
    8. getTitle : 读取多媒体信息的名称
    9. getYear : 读取多媒体信息的年份
    10. getDuration : 读取多媒体信息的时长
    11. getMimeType : 读取多媒体信息的类型
    12. getHasAudio : 读取多媒体信息是否有音频
    13. getHasVideo : 读取多媒体信息是否有视频
    14. getWidth : 读取多媒体信息的宽度
    15. getHeight : 读取多媒体信息的高度
    16. getBitrate : 读取多媒体信息的码率
  • 网络相关→NetworkUtils.kt

    1. getActiveNetworkInfo : 获取活动的网络信息
    2. isConnected : 检查网络是否连接
    3. isAvailableByPing : 判断网络是否可用
    4. isMobileDataEnabled : 判断移动数据是否打开
    5. setMobileDataEnabled : 打开或关闭移动数据(舍弃不可用)
    6. is4G : 判断是否是4G网络
    7. isWiFiEnabled : 判断是否打开WiFi
    8. setWiFiEnabled : 打开或关闭WiFi
    9. isEthConnected : 判断以太网是否连接
    10. isEthAvailable : 判断以太网是否可用
    11. isWiFiConnected : 判断WiFi是否连接
    12. isWiFiAvailable : 判断WiFi是否可用
    13. isWiFiAvailableByPing : 通过ping的方式判断WiFi是否可用
    14. getNetworkOperatorName : 获取网络运营商名称
    15. getNetworkType : 获取当前网络类型
    16. getIPAddress : 获取网络IP地址
    17. getDomainAddress : 根据域名获取ip
    18. readMac : 读取Mac地址:优先获取EthMAC,当Eth为空,接着获取WiFiMAC
    19. getMac : 获取Mac地址:使用Eth时读取EthMAC,否则读取WiFiMAC
    20. getWiredMac : 获取有线Mac地址
    21. getWirelessMac : 获取无线Mac地址
    22. formatTcpSpeed : 格式化比特率
    23. formatNetSpeed : 格式化网速
  • 解析字段值相关→ParseUtils.kt

    1. number : 数值/评分解析
    2. timestamp : 文本时间解析
    3. year : 文本时间解析出年份
  • 路径相关→PathUtils.kt

    1. getRootPath : 获取根路径
    2. getDataPath : 获取数据路径
    3. getDownloadCachePath : 获取下载缓存路径
    4. getInternalAppDataPath : 获取内存应用数据路径
    5. getInternalAppCodeCacheDir : 获取内存应用代码缓存路径
    6. getInternalAppCachePath : 获取内存应用缓存路径
    7. getInternalAppDbsPath : 获取内存应用数据库路径
    8. getInternalAppDbPath : 获取内存应用数据库路径
    9. getInternalAppFilesPath : 获取内存应用文件路径
    10. getInternalAppSpPath : 获取内存应用 SP 路径
    11. getInternalAppNoBackupFilesPath : 获取内存应用未备份文件路径
    12. getExternalStoragePath : 获取外存路径
    13. getExternalMusicPath : 获取外存音乐路径
    14. getExternalPodcastsPath : 获取外存播客路径
    15. getExternalRingtonesPath : 获取外存铃声路径
    16. getExternalAlarmsPath : 获取外存闹铃路径
    17. getExternalNotificationsPath : 获取外存通知路径
    18. getExternalPicturesPath : 获取外存图片路径
    19. getExternalMoviesPath : 获取外存影片路径
    20. getExternalDownloadsPath : 获取外存下载路径
    21. getExternalDcimPath : 获取外存数码相机图片路径
    22. getExternalDocumentsPath : 获取外存文档路径
    23. getExternalAppDataPath : 获取外存应用数据路径
    24. getExternalAppCachePath : 获取外存应用缓存路径
    25. getExternalAppFilesPath : 获取外存应用文件路径
    26. getExternalAppMusicPath : 获取外存应用音乐路径
    27. getExternalAppPodcastsPath : 获取外存应用播客路径
    28. getExternalAppRingtonesPath : 获取外存应用铃声路径
    29. getExternalAppAlarmsPath : 获取外存应用闹铃路径
    30. getExternalAppNotificationsPath : 获取外存应用通知路径
    31. getExternalAppPicturesPath : 获取外存应用图片路径
    32. getExternalAppMoviesPath : 获取外存应用影片路径
    33. getExternalAppDownloadPath : 获取外存应用下载路径
    34. getExternalAppDcimPath : 获取外存应用数码相机图片路径
    35. getExternalAppDocumentsPath : 获取外存应用文档路径
    36. getExternalAppObbPath : 获取外存应用 OBB 路径
  • 拼音相关→PinyinUtils.java

    1. ccs2Pinyin : 中文转拼音
    2. getPinyinHeadChar : 获取中文首字母
    3. getPinyinHeadChars : 获取所有中文首字母
    4. isAllHanzi : 判断是否全是汉字
  • 反射相关→ReflectUtils.kt

    1. getDeclaredFields : 获取类中所有成员,能访问类中所有的字段,与publicprivateprotect无关,不能访问从其它类继承来的方法
    2. getFields : 获取类中所有的公有成员,只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法
    3. setFieldValue : 设置类中指定成员变量的值,一般是设置私有成员变量值
    4. getFieldValue : 获取类中指定成员变量的值,一般是获取私有成员变量值
    5. getDeclaredMethods : 获取类中所有方法,能访问类中所有的方法,与publicprivateprotect无关,不能访问从其它类继承来的方法
    6. getMetods : 获取类中所有的公有方法,只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法
    7. invokeDeclaredMethod : 调用类中指定的方法,能访问类中所有的方法,与publicprivateprotect无关,不能访问从其它类继承来的方法
    8. invokeMethod : 调用类中指定的公有方法,只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法
    9. newInstance : 创建带参数的构造函数,返回类对象
    10. isInstance : 判断是否为某个类的实例
    11. getAnnotation : 获取存在的、指定类型的注解
    12. getAnnotations : 获取类中存在的所有注解
    13. getDeclaredAnnotation : 获取存在的、指定类型的注解,不包括继承的注解
    14. getDeclaredAnnotations : 获取类中存在的所有注解,不包括继承的注解
  • 正则表达式相关→RegexUtils.kt

    1. isMAC : 验证MAC地址
    2. isMobileSimple : 验证手机号(简单)
    3. isMobileExact : 验证手机号(精确)
    4. isTel : 验证电话号码
    5. isIDCard15 : 验证身份证号码15
    6. isIDCard18 : 验证身份证号码18
    7. isEmail : 验证邮箱
    8. isURL : 验证URL
    9. isZh : 验证汉字
    10. isUsername : 验证用户名
    11. isDate : 验证yyyy-MM-dd格式的日期校验,已考虑平闰年
    12. isIP : 验证IP地址
    13. isMatch : 判断是否匹配正则
    14. getMatch : 获取第一个正则匹配的部分
    15. getMatches : 获取正则匹配的部分
    16. getSplits : 获取正则匹配分组
    17. getReplaceFirst : 替换正则匹配的第一部分
    18. getReplaceAll : 替换所有正则匹配的部分
  • 资源相关→ResourceUtils.kt

    1. getName : 解析资源的全名
    2. getEntryName : 解析资源名
    3. getTypeName : 解析资源类型名
    4. getPackageName : 解析资源的包名
    5. getIdentifier : 获取资源Id
    6. getIdentifiers : 遍历读取资源Id
    7. copyFileFromAssets : 拷贝assets文件到指定目录
    8. copyFileFromRaw : 拷贝raw资源到指定目录文件
    9. readAsset : 读取asset文件转字符串
    10. getLocal : 获取当前系统语言
    11. getLanguage : 获取当前系统语言
    12. getCountry : 获取当前系统语言国家
    13. getIdentifier : APP,读取其他应用的资源
  • RxJava相关→RxJavaUtils.kt

    1. dispose : 销毁订阅
  • 命令相关→ShellUtils.kt

    1. execProcessBuilderCommand : 执行命令
    2. execRuntimeCommand : 执行命令
  • 按键快捷键相关→ShortcutTrigger.kt

    1. inputKey : 连续的按键生成快捷键,如四位数字键快捷键 0000
  • SD、TF等存储相关→StorageUtils.kt

    1. registerStorageListener : USB/SD设备拔插监听
    2. getStorageList : 获取所有的内置、外置存储设备
    3. getStorageVolumeList : 获取存储卷的相关信息
  • 字符串相关→StringUtils.kt

    1. isEmpty : 判断字符串是否为空
    2. checkNULL : 判断字符串是否为空,是否是"NULL"字符串
    3. equals : 比较字符串是否相等
    4. equalsIgnoreCase : 比较字符串是否相等,忽略大小写
    5. contains : 判断字符一是否包含字符串二
    6. containsIgnoreCase : 判断字符一是否包含字符串二,忽略大小写
  • SurfaceView相关→SurfaceViewUtils.kt

    1. clearSurfaceView : 清除SurfaceView的最后一帧画面
  • 系统属性相关→SystemPropertyUtils.java

    1. get : 获取String类型系统属性
    2. getBoolean : 获取Boolean类型系统属性
    3. getInt : 获取int类型系统属性
    4. getLong : 获取long类型系统属性
    5. set : 设置系统属性
    6. getLinuxKernelVersion : 读取kernel版本
  • 时间相关→TimeUtils.java

    1. millisec2String : 毫秒时间戳转时间字符串
    2. sec2String : 秒时间戳转时间字符串
    3. string2Date : 时间字符串转Date类型
    4. string2Millisec : 时间字符串转毫秒时间戳
    5. date2String : Date转时间字符串
    6. getTimeSpan : 获取两个时间差
    7. getNowTimeMillis : 获取当前毫秒时间戳
    8. getNowTimeDate : 获取当前Date时间
    9. getNowTimeString : 获取当前时间字符串
    10. getTimeSpanByNow : 获取某时间与当前时间的差
    11. isSameDay : 判断时间是否是同一天
    12. isToday : 判断时间是否是今天
    13. getTodayZero : 获取当天零点
    14. isLeapYear : 判断是否是闰年
    15. getWeek : 获取星期几
    16. getWeekOfMonth : 获取月份中第几周
    17. getWeekOfYear : 获取年份中的第几周
    18. getChineseZodiac : 获取生肖
    19. getZodiac : 获取星座
    20. is24HoursFormat : 判断当前时间制是否是24h
    21. seconds2String : 秒转 分:秒 字符串
    22. milliSeconds2String : 毫秒转 分:秒 字符串
    23. seconds2HourString : 秒转 时:分:秒 字符串
    24. milliSeconds2HourString : 毫秒转 时:分:秒 字符串
    25. createSimpleDateFormat : 创建时间格式化
  • URI相关→UriUtils.java

    1. getFilePathByUri : Uri中读取文件路径
  • View相关→ViewUtils.kt

    1. observeViewLayout : 监听绘制完成
    2. observeViewLayoutForever : 监听绘制完成
  • WebView相关→WebViewUtils.java

    1. callOnWebviewThread : 发送js指令
    2. callJavaScript : 发送js指令
    3. hookWebView : 系统应用绕过UID root 检测


" class="reference-link">Assist


" class="reference-link">版本更新

版本 描述
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


" class="reference-link">感谢


返回目录