安卓开发
安卓开发
加浓美式好喝
when you fall down,just try again.
展开
-
WorkManager
WorkManager提供了更多的高级功能和更好的兼容性,而Service则更适合执行简单的后台任务。WorkManager提供了许多高级功能,例如链式任务、延迟任务、周期性任务和灵活的重试策略等,而Service的功能相对较少。WorkManager可以在不同版本的Android系统上提供一致的行为,而Service的行为可能因Android版本而异。WorkManager可以根据设备的电池和网络状态自动调整任务执行时间,而Service可能会影响设备的电池寿命和网络使用。1.定义一个后台任务。原创 2024-05-22 11:26:46 · 154 阅读 · 0 评论 -
Room
dao层的目的是覆盖所有业务需求,使得用户不必与底层数据库打交道。定义Entity(实体类)定义Entity(实体类)定义Database。原创 2024-05-22 10:32:35 · 126 阅读 · 0 评论 -
Lifecycles
【代码】Lifecycles。原创 2024-05-21 19:00:41 · 90 阅读 · 0 评论 -
ViewModel
它使用了ViewModelProvider和MainViewModelFactory类,用于创建MainViewModel的实例,并传入countReserved参数,用于初始化MainViewModel中的count属性。这样,我们就可以在Activity中使用viewModel变量来访问MainViewModel中的数据和方法。ViewModel的作用是帮助我们管理UI相关的数据和业务逻辑,实现数据的存储、共享、隔离和生命周期管理,从而提高应用程序的可维护性和可扩展性。传参给viewmodel。原创 2024-05-21 17:56:48 · 211 阅读 · 0 评论 -
下拉刷新
当用户下拉SwipeRefreshLayout时,将会触发下拉刷新监听器中的refreshFruits()方法。refreshFruits()方法是一个私有方法,用于刷新水果列表。在该方法中,我们使用了一个线程来模拟网络请求的延迟,然后在主线程中更新水果列表,并通知适配器数据已经发生变化。最后,我们还将SwipeRefreshLayout的刷新状态设置为false,表示刷新已经完成。SwipeRefreshLayout里面可以嵌套一个控件,在里面这个控件下滑时,会触发刷新的机制。原创 2024-05-21 14:54:51 · 173 阅读 · 0 评论 -
可交互提示Snackbar
make()方法接受三个参数:第一个参数是一个View对象,表示Snackbar要显示在哪个视图上;第二个参数是Snackbar要显示的文本消息;第三个参数是Snackbar要显示的持续时间,可以是LENGTH_SHORT或LENGTH_LONG。原创 2024-05-21 14:29:15 · 569 阅读 · 0 评论 -
滑动菜单栏
drawerlayout是菜单栏的主体,一般配合NavigationView使用,实现好看的UI界面。drawerlayout的第一个布局是主界面的布局。第二个是打开菜单栏后的菜单栏的布局。此处直接由NavigationView替换即可。group表示item的选项属于group组内,并且设置了group里面的选项为单选。菜单栏由两部分组成,头部和菜单。上面已经实现了菜单。新建menu布局,表示菜单栏的选项。原创 2024-05-21 14:20:43 · 341 阅读 · 0 评论 -
网络
解析json格式数据。原创 2024-05-20 18:00:52 · 931 阅读 · 0 评论 -
Service
通常用于执行与应用程序交互不直接相关的任务。在单独的工作线程中运行,无需手动管理线程。需要手动管理线程和生命周期,而。可以与应用程序的其他组件(如。与Activity通信。原创 2024-05-20 14:33:42 · 626 阅读 · 0 评论 -
线程
onPostExecute() : doInBackground() 执行完毕后再执行的方法 ,这个字段是一个整数,可以用来区分不同类型的消息。onPreExecute() : 在 doInBackground() 执行前先执行的方法 ,doInBackground() : 核心方法 , 执行异步任务 , 该方法在。类是一个轻量级的数据结构,用于在线程之间传递数据和消息。是一个用于执行后台任务并更新UI的辅助类。在doInBackground中执行耗时任务,由子线程执行。字段的值来执行相应的操作。原创 2024-05-17 18:13:57 · 412 阅读 · 0 评论 -
安卓开发——多媒体
易于传输和共享:使用Bitmap对象可以轻松地在应用程序、服务和设备之间传输和共享图像。例如,我们可以将Bitmap对象发送给其他应用程序或服务,以便它们可以访问和处理图像。内存管理:Bitmap对象可以直接在内存中操作图像数据,这使得在处理图像时可以更快地访问和修改数据。这意味着我们可以在不同的Android设备和版本上使用相同的Bitmap对象来处理图像。便于操作:Bitmap对象提供了丰富的API,可以方便地对图像进行各种操作,如缩放、裁剪、旋转、滤镜等。音频和视频播放的方法有所不同。原创 2024-05-17 15:46:34 · 462 阅读 · 0 评论 -
ContentResolver
创建自己的ContentResolver。原创 2024-05-16 17:39:15 · 168 阅读 · 0 评论 -
持久化技术
MyDatabaseHelper继承自SQLiteOpenHelper,需要重写onCreate和onUpgrade方法。onUpgrade方法用于升级数据库。当传入的参数大于上一个版本的数据时就会调用。update后面两个参数是表示where name = The Da Vinci Code。添加一个按钮,点击后将数据提交。使用SQL操作数据库。原创 2024-05-16 15:12:19 · 705 阅读 · 0 评论 -
Kotlin高阶函数用法之一
【代码】Kotlin高阶函数用法之一。原创 2024-05-16 10:06:10 · 79 阅读 · 0 评论 -
广播
但是动态注册只能在程序启动之后才能执行的,因为是写在oncreate中的。如果想实现在程序未启动的时候就接收广播,需要执行静态注册。原创 2024-05-15 17:22:49 · 198 阅读 · 0 评论 -
Kotlin扩展函数和运算符重载
相当于直接将方法写在类里面。函数体内可以直接使用this而不用传参。operator和plus是不能变的,plus表示“+”原创 2024-05-15 15:17:17 · 188 阅读 · 0 评论 -
RecyclerView+Activity跳转
【代码】RecyclerView+Activity跳转。原创 2024-05-15 14:57:22 · 153 阅读 · 0 评论 -
RecyclerView[new]
【代码】RecyclerView[new]原创 2024-05-14 16:24:35 · 410 阅读 · 0 评论 -
ListView[new]
等列表控件中,当滑动列表时,会重用之前创建的视图对象,以避免重复创建和填充视图,提高列表的滑动性能。用viewHolder可以缓存控件,可以减少findViewById函数的调用次数。对象来保存当前列表项中的子视图对象,以便在下次滑动列表时能够重用其中的子视图对象。中,我们可以将子视图对象作为成员变量保存起来,这样在下次滑动列表时,就可以直接从。对象的作用是在列表控件中重用子视图对象,以提高列表的滑动性能。函数的调用次数,从而提高列表的滑动性能。中获取子视图对象,而不需要再次调用。函数来查找子视图对象。原创 2024-05-14 14:56:22 · 401 阅读 · 0 评论 -
自定义配置
【代码】自定义配置。原创 2024-05-13 19:56:38 · 107 阅读 · 0 评论 -
AlertDialog
【代码】AlertDialog。原创 2024-05-13 17:40:19 · 102 阅读 · 0 评论 -
进度条
View.INVISIBLE表示控件不可见,但实际存在,只是透明了。View.GONE 表示控件不可见,且不存在该控件。View.VISIBLE表示控件可见。原创 2024-05-13 17:11:42 · 237 阅读 · 0 评论 -
Kotlin标准函数和静态方法
Kotlin本身没有static关键字来支持静态函数,但是它本身有单例类的特性可以支持类似静态函数的功能。第一个参数是一个类型或者对象,第二个参数是lambda表达式。其中第一个参数为第二个参数提供上下文,返回值是最后一行。只有一个参数,是lambda表达式。和run类似,但是无法指定返回值。注解只能用在单例类和companion object下。单例类/companion object。注解(@JvmStatic。原创 2024-05-13 15:48:59 · 383 阅读 · 1 评论 -
传递数据
【代码】传递数据。原创 2024-05-11 19:57:16 · 96 阅读 · 0 评论 -
显式Intent
【代码】显式Intent。原创 2024-05-11 19:23:27 · 241 阅读 · 0 评论 -
实现菜单功能
【代码】实现菜单功能。原创 2024-05-11 19:08:11 · 105 阅读 · 0 评论 -
Kotlin基本特性
componentN()提供了快速访问元素的功能。data class只是是kotlin提供的具有常用数据model功能的类,用于提升开发效率。data class比class 多实现了 toString()、hashCode()、equals()、copy()、componentN()方法。同样的,针对set也是一样。若想调用父类的构造函数,可以在Base()里传参。用listOf来一次性将list元素给add进去,避免了多次add,简化了代码。也存在默认的接口,即没有自己实现就调用默认的。原创 2024-05-11 16:09:20 · 685 阅读 · 0 评论 -
Activity生命周期
原创 2024-05-04 21:46:35 · 106 阅读 · 0 评论 -
MVVM框架
此处用了addObserver函数,代表添加监控者。监控该activity的变化。activity的状态有onCreate,onStop,onDestory等,该函数表示对所有状态进行监听。通过继承LifecycleObserver来实现生命周期观察者的方法。单向绑定(本地更新的值可以被变量接收,但是变量改变不会影响本地的值)意义就是为了监控某个事件的生命周期。该方法使用了标签的方法,仅仅针对某个状态进行监控。以上操作就实现了数据的绑定。xml里只需要绑定一个变量。修改类型为可观察的类型。原创 2024-04-29 11:36:47 · 251 阅读 · 0 评论 -
Kotlin基础
其中field是系统生成的变量,用来表示当前成员变量的值。加上infix关键字,可以通过类型加.的方式定义函数,同时在调用的时候也需要该类型的值加.进行调用。重写父类的函数需要在父类的函数前加open,并且重写的函数需要加override。var表示定义变量,可以自动推导变量类型,所以Int可以不用写。@a是标签,可以直接break到标签的位置,类似goto。if表达式可以返回值,该值一般写在if里的最后一行。甚至可以这么写,调用的时候可以省略.和括号。可以把函数看作成一个表达式,可以进行赋值。原创 2024-04-26 14:47:55 · 646 阅读 · 0 评论 -
Android开发——Fragment
onDestroyView函数一般在当前UI界面不需要显示时才会调用。而切回主屏幕不会导致UI销毁所以不调用该函数。onCreateView相反。点击按钮,Fragment对象会被替换到下方FrameLayout容器上。Activity和Fragment通信(Bundle方案)除了替换,还有很多操作 Fragment对象的方法。按按钮之后将数据传给Fragment对象。绑定fragment。原创 2024-04-20 10:35:05 · 366 阅读 · 0 评论 -
Android开发——ViewPager
使用 LayoutInflater 从布局文件 R.layout.layout1、R.layout.layout2 和 R.layout.layout3 中分别加载了三个视图,并添加到了一个 ArrayList 中。在方法 instantiateItem 中,根据给定的 position,从 list 中获取对应位置的视图,并将其添加到 ViewPager 的 container 中。最后返回该视图对象。getCount 方法返回 ViewPager 中要显示的视图数量,即 list 的大小。原创 2024-04-19 11:59:01 · 418 阅读 · 1 评论 -
动画
以上是对文本的透明度设置动态变化(当然除了透明度还有其他属性)作用是把值进行动态的修改(可以是TextView里面的值)原创 2024-04-19 10:02:59 · 116 阅读 · 0 评论 -
Android开发——RecyclerView
在该方法中,通过LayoutInflater将item布局文件实例化为View对象,并传入RecyclerView的父布局中。在该方法中,通过ViewHolder对象获取到对应的TextView,并设置其文本内容为数据源中对应位置的数据。方法,动态地设置了主布局的padding,以适应系统状态栏和导航栏的高度,确保内容不被遮挡。在构造方法中,获取到Item布局文件中的TextView,并设置点击事件监听器。方法,将应用程序的界面延伸到屏幕的边缘,实现全屏显示效果。第二个构造方法是默认的构造方法,没有参数。原创 2024-04-18 20:06:03 · 418 阅读 · 2 评论 -
Android开发——ListView
总的来说,Adapter类在Android开发中起到了桥梁的作用,连接了数据源和UI组件,负责将数据呈现到界面上,并提供了一系列的方法和机制,保证了界面的流畅性和用户体验。方法用于获取每个列表项的视图。综上所述,这段代码实现了一个简单的活动,在界面中显示了一个包含 100 个列表项的列表视图,并且使用了边缘到边缘布局来实现全屏显示效果。适配器根据数据源中的数据,动态地加载布局文件,并将数据填充到布局中,然后显示在列表中。类是一个内部静态类,用于缓存列表项中的视图控件,以便在滚动列表时快速访问,提高性能。原创 2024-04-18 17:50:16 · 916 阅读 · 0 评论 -
Android开发——实现简易登录功能
AndroidManifest.xml中注册新加的activity。mainActivity.java (实现点击按钮的方法)跳转界面(activity_main2.xml)登录界面(mainActivity.xml)登录界面(mainActivity.xml)编辑mainActivity2.java文件。如何将两个activity结合。原创 2024-04-17 20:19:57 · 605 阅读 · 0 评论 -
Android开发——布局
所谓父子容器,就是嵌套容器时存在的关系。根据兄弟容器定位需要传入兄弟的id。FrameLayout (覆盖布局)TableLayout (表格)GridLayout (网格)原创 2024-04-14 11:15:19 · 182 阅读 · 0 评论 -
Android开发——控件
我们的text等属性一般不会明写内容,而是将数据存放在values目录下。text属性一般是存在该目录下的string文件里。所以如果不设置焦点聚焦的话,那么它会呈现一个静态的效果。首先给需要被监控的文本框和按钮设置id,以便到java文件中进行绑定。带阴影的textview:(一般用于给字体添加属性)其中背景的设置一般存在于新建的文件中,通过@去链接。可以通过在TextView里面设置窗口的大小。具体的实现在java文件中。text的内容就是获取到的文本框的内容。取消通知:(id要和上面的一样)原创 2024-04-13 21:36:36 · 802 阅读 · 0 评论