Kotlin -- Object关键字
语义: 匿名内部类 单例模式 伴生对象 本质: 在定义一个类的同时还创建了对象 匿名内部类在Java中,我们一般这么写 public interface OnClickListener { void onClick(View v); }image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 在Kotlin中 binding.textView.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View?) { } }) . 不过,在 Kotlin...
Android-在Activity中使用Menu
在Activity中使用Menu资源文件 首先在 res 目录下新建一个menu文件夹,右击res目录–>New–>Android Resource Directory,输入文件夹名menu,在弹出的菜单中Directory Name输入Menu,Resource type 选择Menu,然后在此文件夹下新建一个 main.xml的菜单文件,右击menu–>New–>Menu Resource File。 最后添加 Item的 id和title即可. <?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/add_item" android:title="@string/add" /><item ...
ConstraintLayout-constraintDimensionRatio属性
h和w参数的解释 这里我们还需要解释一下app:layout_constraintDimensionRatio的值里面的h和w是什么意思。一般来说,加上h的意思就是,h之后的比例是以w为基础去设置h,即h = w * ratio。反之,写上w的意思是,w = h / ratio (因为 ratio = w / h 代表宽高比)。
Android 11 分区存储
场景从微信打开KML文件,选择自家开发的App打开,发现能够读取读取文件路径,但是在操作的时候显示错误 java.io.FileNotFoundException: /storage/emulated/0/Android/data/com.tencent.mm/MicroMsg/Download/xxx.kml: open failed: EACCES (Permission denied) 其中AS工程已经正确配置存储权限,并且application已经配置android:requestLegacyExternalStorage="true" 因项目在Android10上能够正确运行,但是在Android 11及以上有异常,猜想是因为Android 11做了一些限制。 因此采用另外一种方法:先把真实路径从获取到的Uri对象中解析出来,然后把文件拷贝一份到App目录下面,再对这个文件进行解析 /** * 从Uri获取真实路径 * @param context * @param uri * @return */ ...
RxJava3+Retrofit简单使用
目标 从百度翻译定时轮询翻译API 依赖implementation 'io.reactivex.rxjava3:rxjava:3.1.2'implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'implementation 'com.squareup.retrofit2:retrofit:2.9.0'// 衔接 Retrofit & RxJava// retrofit适配器implementation 'com.squareup.retrofit2:adapter-rxjava3:2.9.0'// Gson解析implementation 'com.squareup.retrofit2:converter-gson:2.9.0' 权限:<uses-permission...
Android优秀开源第三方库
Log类Timber https://github.com/JakeWharton/timber implementation 'com.jakewharton.timber:timber:5.0.1'
Android Studio 和Lombok插件不兼容问题
最近安装了高版本的 AS,然后在Plugins里已经搜索不到lombok这个插件了 在https://plugins.jetbrains.com/plugin/6317-lombok/versions下载离线的安装包 然后报错 Plugin 'Lombok' (version '0.34.1-2019.1') is not compatible with the current version of the IDE, because it requires build 191.* or older but the current build is AI-211.7628.21 解决办法: 将下载的插件解压,然后拷贝里面的jar包到Android Studio的安装目录 D:\Program Files\Android\Android Studio\plugins下面,重启AS即可
Dagger基本使用
依赖annotationProcessor 'com.google.dagger:dagger-compiler:2.41'implementation 'com.squareup.retrofit2:retrofit:2.9.0' 一、快速实现1、构造方法使用Inject注public class User { public String name; @Inject //使用Inject注解在构造方法上,就是告知dagger可以通过构造方法来创建获取到User的实例 public User(){ this.name = "Lee"; }} 2、创建ApplicationComponent@Componentpublic interface ApplicationComponent { void inject(MainActivity mainActivity);...
Xcode使用技巧(ImageLiteral、ColorLiteral)
选择图片: Image Literal 颜色: Color Literal
Postman截取Chrome网络请求
1.安装Chrome插件安装 Postman Interceptor 插件 https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl=zh 2.安装 Interceptor Bridge 按照 https://learning.postman.com/docs/sending-requests/capturing-request-data/interceptor/ 设置安装 Mac OS下需要先安装Node.js环境,没有的话,会自动下载node.js的安装包 打开Requests 和Cookies 在Requests 里面选择 Source 为Interceptor,打开Capture Requests,然后选择请求保存的位置 在Cookies里面,打开Capture Cookie,然后在Domains里面可以过滤信息 重复请求测试 在Postman左侧找到已经抓取到的请求,然后添加到Save...