自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 JAVA-多态之绑定

定义将方法调用与方法主体关联起来称作绑定;当子类重写父类方法,调用时确定是调用父类方法还是子类方法的过程就是绑定。这一过程分为前期绑定和后期绑定。前期绑定在程序执行前进行绑定称为前期绑定,一般由编译器和连接程序实现,C中仅有前期绑定。而java中static方法、final方法和private方法使用的前期绑定。也就是说当一个方法无法被重写时就使用前期绑定。后期绑定在程序运行时根据对象的类型进行绑定,后期绑定也叫动态绑定或者运行时绑定。编译器不知道对象类型,但是方法调用机制能找到正确的方法体,

2021-09-30 14:40:23 237

原创 重学Android——activity的生命周期

activity的生命周期onCreateactivity正在被创建,在这里做一些初始化工作onRestartactvity正在重新启动,正常由用户行为导致onStartactivity正在被启动,activity此时已可见,但仍然处于后台,无法进行交互onResumeactivity可见,并处于前台,可以进行交互onPauseactivity正在停止,正常情况下会马上调用onStop,特殊情况下快速回到activity会调用onResumeonStopactivity即将停止,可以

2021-04-22 14:27:47 158

原创 android设置桌面小部件

1、简单的创建完成后:在AppWidgetProvider内 override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { // There may be multiple widgets active, so update all of them for (appWidg

2020-12-17 09:52:23 3015 3

原创 限制editText可输入内容为中英文

kotlin: fun setEditTextFilter(editText: EditText){ val filterOne = InputFilter { source, start, end, dest, dstart, dend -> if (source==" ") { "" } else{ null } }//不

2020-10-27 14:18:09 399

原创 自定义toast显示view与位置

val toast = Toast(context)val inflate =View.inflate(context, R.layout.max_value_toast_item,null )//自定义布局toast.view = inflate //将自定义view设置给toasttoast.setGravity(Gravity.CENTER, 0, -100) //自定义位置toast.show()

2020-10-27 13:50:51 378

原创 Android,通过监听重力传感器来获取当前设备的横竖屏状态(备用选择:加速度传感器)

获取重力传感器监听回调步骤一、获取传感器管理类二、获取需要的传感器类型三、实现传感器监听类

2020-10-13 17:25:03 1035

原创 MMKV使用过程中踩的坑

问题描述:发现子模块使用mmkv的defaultMMKV进行储存数据,主模块也是使用的mmkv的defaultMMKV进行存储,后来子模块升级改造使用MMKV.mmkvWithID方式进行存储数据导致主模块无法获取已存储的信息,会导致线上用户信息丢失。问题所在:子模块的mmkv使用的时候初始化在主模块之前,会强制主模块的mmkv加密key使用子模块设置的key,在升级后,子模块更换mmkvWithID的方式存储,导致key有变成了主模块的key无法正常解密拿到信息(根据解决结果推测的原因)解决问题

2020-09-29 17:21:17 3305

原创 Android,保存图片并通知系统更新相册

原本使用MediaStore.Images.Media.insertImage来进行插入,虽然能正常通知相册更新,但是部分机型会显示两张同样的图片,一张是我们自己存的一张是insertImage生成的放置于Pictures文件夹底下,这显然不符合我们的需要,于是通过insertImage找到所使用的通知功能如下://kotlinval values = ContentValues()values.put(MediaStore.Images.Media.DATA, file?.absolutePath)

2020-09-25 11:03:54 1476

原创 Room数据库模糊搜索结果排序

其实可以在代码中进行排序,但是能用sql语句 为什么不用呢 @Query("select * from weather_city_table where city_name LIKE '%' || :message || '%' order by case when city_name = :message then 1 when city_name LIKE :message || '%' then 2 when city_name LIKE '%' || :message || '%' then 3

2020-07-01 11:49:03 1432

原创 更改软键盘回车键为搜索按钮

EditText添加以下属性android:imeActionId=”3”android:imeActionLabel=”搜索”android:imeOptions=”actionSearch”并且下面的属性2选一:(必须选择一个)android:singleLine="true"android:inputType="text"ps:singleLine已过时设置监听edit_search.setOnEditorActionListener { _, actionId, _ ->

2020-06-16 13:02:14 327

原创 ROOM数据库指定字段具有唯一性

在@Entity注解中添加indices,并指明字段名称,以及unique = true 示例如下:@Entity(tableName = ALMANAC_TABLE , indices = [Index(value = ["date"],unique = true)])可以设置多个。设置完别完了做好数据库升级工作

2020-06-16 11:04:28 4836 3

原创 关于矢量图在android4.4中的使用

BUG最近跟新了以下应用后发现,新添加的几个界面在Android4.4(最后的倔强,不想放弃4.4的适配)版本无法正常运行,会闪崩。原因矢量图是android5.0时候推出的在4.4无法适配解决方法在build中添加:defaultConfig { vectorDrawables.useSupportLibrary = true}原以为加了这个就能美滋滋的使用,没想到依旧有两个界面会崩,少了一个,还是有用的;然后就开始找原因咯,最后发现是我的矢量图是在textview中的drawable

2020-06-12 16:49:40 409

原创 去除recycleview的滑动事件

开发中遇到个需求,在某个界面加载的recycleview需要禁止掉滑动事件,而在另一个界面,同一个fragmengt类不能静止滑动事件第一次尝试创建一个类,并继承RecyclerView 覆写dispatchTouchEvent private var isCanSc = true fun setIsCanSc(isCanSc: Boolean) { this.isCanSc = isCanSc } override fun dispatchTouch

2020-05-28 13:58:20 1859 1

原创 ViewPager的高度设置wrap_content无法生效

尝试的几个方法1、通过ConstraintLayout进行布局app:layout_constraintTop_toBottomOf="@id/tab_layout"android:layout_width="match_parent"android:layout_height="0dp"app:layout_constraintBottom_toBottomOf="parent"结果:没有起效果2、通过固定高度的方式来进行布局结果:viewpager里面我要放的东西高度不一定,所以pas

2020-05-22 16:08:11 442

原创 动态添加抽屉布局头,并设置点击事件

navi_view.setNavigationItemSelectedListener(this)val view = navi_view.inflateHeaderView(R.layout.nav_header_main)view.head_iv.setOnClickListener {//todo}

2020-05-19 16:42:16 200

原创 记录一次ERROR

今天工作的时候,APP装上,打开某个界面的时候突然奔溃,报了requestFeature() must be called before adding content ;解决方法其实挺简单,自己的activity如果继承自Avtivity就调用requestWindowFeature(Window.FEATURE_NO_TITLE);如果是继承自AppCompatActivity就调用supportRequestWindowFeature(Window.FEATURE_NO_TITLE)。当然不

2020-05-19 16:40:04 105

原创 SimpleDateFormat记录一个有意思的东西

E表示星期几,今天用的时候发现 "yyyy-MM-dd E"出来的E是【周*】星号表示周几,两个E个三个E,显示的跟一个还是一样的;而到了EEEE就会显示层【星期*】...

2020-01-06 21:54:54 82

原创 fragment遇到的问题

在fragment中,带参构造函数在创建的时候可以使用,但是在activity被回收,然后重新恢复的过程中,fragment会走空参构造函数,没有的话就会报fragment找不到构造函数的错误,android也建议我们fragment不要使用带参的构造函数,所以传值的话直接使用Arguments就可以解决问题。...

2020-01-04 00:16:10 123

原创 android桌面控件开发

创建直接根据前一篇的快捷创建备注:有些机型的android:minWidthandroid:minHeight,必须设置,不然会显示不出来,现在遇到魅族是这种情况做一个桌面数字时钟布局就不说了为了跳过创建widget时要先打开的activity,直接在activity的onCreate中startService,开启服务,在onCreate的最后finish()掉自己。在serv...

2019-12-30 00:45:08 468 1

原创 widget安卓桌面插件初步使用

自动创建点击打开,选择需要的大小自动生成就可以简单的运行一个demo了,这两个xml文件,第一个是桌面控件的布局文件,第二个是添加桌面控件时打开的activity的设置界面...

2019-12-23 23:17:10 1049

原创 开发遇到的问题

问题在依赖第三方库后,运行运用时出现的问题,待解决。dalvik.system.PathClassLoader

2019-12-23 02:25:09 57

原创 依赖中遇到的问题

项目中访问不到module中libs下面的jar包排查了好久,最后发现,在依赖最初,把complie修改为implementation,而implementation与complie还是有区别的,实际上complie的替代是api,作用完全一致,使用api声明的依赖包是可以被其他模块使用。...

2019-12-23 00:45:39 87

原创 修改第三方库的远程依赖为本地依赖遇到的问题

依赖初遇到的问题无法依赖,找不到文件以下代码需注释apply from: '../maven_push.gradle'ErrorThe minSdk version should not be declared in the android manifest file.遇到这个error需要删除manifest.xml 里的sdk版本设置删掉...

2019-12-16 11:01:15 506

原创 CameraX闪光灯,app内打开跳转系统相册

闪光灯 val imageCaptureConfig = ImageCaptureConfig.Builder().apply {//在config里面设置 setLensFacing(lensFacing) setCaptureMode(ImageCapture.CaptureMode.MIN_LATENCY) se...

2019-12-15 20:33:52 821

原创 记录一个error

error Lacking privileges to access camera service由于没有打开相机权限导致的报错;需要动态获取;

2019-12-11 11:36:24 134

原创 lottie笔记2

根据不同对象加载lottieLottieCompositionFactory.fromJsonString(s, null).addListener {//加载json字符串对象 lottieAnimationView.setComposition(it) lottieAnimationView.playAnimation() ...

2019-12-10 04:15:42 380

原创 lottie笔记(加载本地文件)

依赖dependencies { implementation 'com.airbnb.android:lottie:3.3.0'}使用 lottieAnimationView.setImageAssetsFolder("images"); lottieAnimationView.setAnimation("data.json"); lo...

2019-12-07 22:45:42 1619

原创 Svg笔记1

viewbox的作用:设置相对大小比如,<svg width="200" height="200" viewbox="0 0 100 100"></svg>实际的svg大小为200px,而在svg里面是按相对宽高100:100进行设置的,可以直接更改svg实际大小来放大缩小svg...

2019-12-04 03:23:19 245

原创 Room笔记

1、依赖kotlin的依赖需要以下三个语句 implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version"而Ja...

2019-11-25 23:56:48 95

原创 获取app缓存大小,以及清理缓存

public class DataCleanManager { /** * 获取缓存大小 * @param context * @return * @throws Exception */ public static String getTotalCacheSize(Context context) throws Exceptio...

2019-11-17 01:49:45 625

原创 高德地图定位

配置清单文件<meta-data android:name="com.amap.api.v2.apikey" android:value="请输入您的用户Key"/>前提是已经将jar包导入项目了权限申请 <uses-permission android:name="android.permission.INTERNET"...

2019-11-14 00:56:31 131

原创 根据已有时间格式,获取时间Date对象

例子 Calendar calendar = Calendar.getInstance(); String dateStr = "2019-11-01" SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date obj = format.pars...

2019-11-12 22:45:08 511

原创 Retrofit的使用

添加依赖 implementation 'com.squareup.retrofit2:retrofit:2.6.1' implementation 'com.google.code.gson:gson:2.8.5'//GSON implementation "com.squareup.retrofit2:converter-gson:2.6.1"//converter-gson...

2019-11-12 00:15:48 128

原创 kotlin协程的简单使用

kotlin的定义对我来说就是跟线程一样的东西,是个线程框架,让开发者更好的处理并发,以及解决回调问题协程的使用在app的build.gradle中添加依赖kotlin { experimental { coroutines 'enable' }}dependencies { implementation 'org.jetbrains.kotlinx...

2019-11-10 01:47:24 771

原创 时间与日期的获取转换

获取本地时间与日期SimpleDateFormat的时间格式y-年,M-月,d-日,D-一年的第几天,W-一年的第几星期,H-小时(24),h-小时(12),m-分,s-秒,S-毫秒,E-星期,a-上午/下午val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm")//设置所需要的时间与日期格式val currentTimeMil...

2019-11-08 23:34:23 151

原创 Room的使用

引入依赖 implementation 'android.arch.persistence.room:runtime:1.1.1' annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'使用我们需要一个Entity、一个Dao和一个DataBase。1、使用@Entity注解,表明这个是其中一张表,另外...

2019-11-06 00:34:38 912

原创 JetPack Paging

添加依赖implementation 'android.arch.paging:runtime:2.1.0'创建Adapter继承PagedListAdapter并在类里创建viewholder,获取需要的控件public class AdapterPaging extends PagedListAdapter <Student, AdapterPaging.MyViewHolde...

2019-11-03 15:10:28 128

原创 解析不确定key的JSON

编写解析json的工具类public class JsonLoop { public static Map utils(String string) { Map<String, Object> objectMap = new HashMap<>(); try { JSONObject object = ne...

2019-11-02 02:33:11 528

原创 RxJAVA常用Observable操作符

Obersvable的种类Observable 表示可以发射0-N个Item信号,当收到Complete信号或者Error信号结束,所以这里就有一种可能是成功发射了若干个然后失败,特别注意这点Flowable 从之前的 Observable 中分离出来的,有Observable 的特性的同时支持背压Single 表示只会发送一个信号或者一个Error信号就结束的ObservableMay...

2019-10-31 08:22:24 1155

原创 PermissionsDispatcher使用

首先添加依赖compile 'com.github.hotchemi:permissionsdispatcher:4.6.0'annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:4.6.0'注解列表@RuntimePermissions注解:用于标注在需要申请权限的Activity或Fragme...

2019-10-30 02:23:41 426

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除