自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 资源 (3)
  • 收藏
  • 关注

原创 Flutter实现页面跳转示例

如果需要进行命名路由(使用`Navigator.pushNamed`和`Navigator.popUntil`)或者需要传递数据,可以通过定义路由和使用`RouteSettings`来实现。在这个示例中,`FirstPage`有一个按钮,点击后会使用`Navigator.push`跳转到`SecondPage`。`Navigator`负责管理应用中的路由堆栈,可以通过`push`方法来添加新的路由到堆栈中,从而实现页面跳转,通过`pop`方法可以返回上一个路由。

2024-09-13 19:30:34 560

原创 C语言学习笔记 库文件

在C语言中,库分为静态库(.a)和动态库(.dll或.so)。调用静态库时,编译器会把库文件编译到可执行文件(.exe)里;调用动态库时,编译器不会把库文件编译到可执行文件(.exe)里,需要同可执行文件放到同一目录,程序运行时才会调用。

2024-06-08 23:17:59 978

原创 C语言简单实现贪吃蛇

【代码】C语言简单实现贪吃蛇。

2024-06-03 00:38:36 156

原创 使用MinGW来构建C语言项目

运行安装程序,选择安装基本组件,如gcc编译器、gdb调试器和make工具。安装完成后,将MinGW的bin目录添加到系统的环境变量中。从MinGW的官方网站下载MinGW安装程序。

2024-05-27 14:32:56 352

原创 GCC常用命令

`gcc -E filename.c -o output_filename.i`:这个命令会对`filename.c`进行预处理,并将预处理后的代码输出到`output_filename.i`文件中。- `gcc -c output_filename.s -o output_filename.o`:这个命令会将汇编代码编译成目标文件,并将目标文件输出到`output_filename.o`文件中。#### 6. 多个程序文件的编译。#### 3. 编译为汇编代码。#### 1. 简单编译。

2024-05-27 12:49:56 393

原创 JSON-C库 下载安装

请注意,上述步骤可能会根据您的具体系统环境有所不同。在编译和安装过程中,如果遇到任何问题,您可以查看JSON-C的官方文档或GitHub仓库中的README文件,以获取更详细的指导和帮助。4. 根据您的操作系统,使用适当的脚本来生成配置文件和编译库。您可以通过访问JSON-C的官方GitHub仓库来下载JSON-C库。5. 如果您使用的是Windows系统,您可能需要使用MinGW或其他兼容的编译器来编译JSON-C库。### JSON-C库的下载。1. 打开终端或命令提示符。

2024-05-26 23:14:51 771

原创 国内github镜像站点

2. `hub.nuaa.cf` 和 `hub.fgit.ml`:这些是推荐的镜像站点,您可以通过更改GitHub仓库地址的域名部分来使用它们,例如将 `https://github.com/username/repo.git` 改为 `https://hub.nuaa.cf/username/repo.git` 或 `https://hub.fgit.ml/username/repo.git`。

2024-05-26 20:30:48 19483 3

原创 JSON转kotlin数据类的在线工具

(app.quicktype.io/#l=kt):这是一个在线工具,可以将JSON数据转换为多种编程语言的数据类型,包括Kotlin。(www.convertjson.com/json-to-kotlin-data-class):这个工具同样允许您将JSON数据粘贴到网站上的编辑器中,然后点击相应的按钮来生成Kotlin数据类代码。(www.json2kotlin.com/):这是另一个在线工具,允许您将JSON数据粘贴到网站上的编辑器中,然后点击“Convert”按钮来生成Kotlin代码。

2024-05-25 17:27:40 642

原创 测试自动生成目录

内容1111111111111111。内容2222222222222。

2024-05-24 02:23:05 220

原创 Android Room 使用模版

【代码】Android Room 使用模版。

2024-05-23 14:20:44 911

原创 Kotlin学习笔记 泛型

Kotlin 还支持类型投影,这允许在不知道具体类型的情况下安全地使用泛型类型。在编译后的字节码中,泛型类型参数的具体类型信息会被擦除,这意味着在运行时无法得知泛型参数的实际类型。Kotlin 支持泛型,这意味着您可以编写可以与多种数据类型一起工作的代码,而不必为每种数据类型编写单独的代码。对泛型类型参数施加约束,以限制它们可以接受的类型。在 Kotlin 中,`T` 通常用作类型参数的占位符,它在实例化或传递参数时会被替换成具体的类型。// 泛型函数,T 必须是 Comparable 的子类型。

2024-05-23 12:56:40 425

原创 Android Retrofit 封装模版

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-05-22 23:07:14 853

原创 android gradle配置本地文件地址

【代码】android gradle配置本地文件地址。

2024-05-07 15:01:32 656

原创 Android by viewModels()

如果您想要在配置更改后保持ViewModel的实例,可以使用by viewModels({ key -> vmFactory }), 其中vmFactory是一个ViewModelProvider.Factory。在Android中,您可以使用ViewModel来管理UI相关的数据,而不会在配置更改(如旋转屏幕)后丢失数据。请注意,by viewModels()是在Android Studio Arctic Fox及更高版本的Kotlin库中引入的,因此请确保您的IDE和Kotlin版本是最新的。

2024-05-03 01:17:31 1203 1

原创 Android ViewBinding使用模板

【代码】Android Studio开启ViewBinding。

2024-05-03 01:05:33 353 1

原创 Android Room使用模板

Insert(onConflict = OnConflictStrategy.REPLACE) //重复时则会替换。4,RoomDatabase类。

2024-04-25 00:48:32 456 1

原创 Android ViewModel使用模板

Text(text = "获取网络信息") }1,创建ViewModel类。2,引用ViewModel。

2024-04-25 00:37:18 646 2

原创 Android retrofit使用模板

1,加入网络访问权限。

2024-04-25 00:24:30 408 1

原创 Android Compose页面跳转Demo

/创建NavHost导航组建者,传入了mNavController 导航控制器 与 首个显示的页面 startDestination = APage。Text(text = "页面A: 点击跳转页面B", fontSize = 30.sp)Text(text = "页面B: 点击返回页面A", fontSize = 30.sp)//这里添加了页面A,APage为路由地址。//jetpack compose导航。

2024-04-24 22:31:41 594 1

原创 好用的在线编译器

Ideone是一个支持60种语言的在线编译器和调试工具,它提供了许多强大的功能,可以帮助程序员快速高效地编译源代码。: CodePen是一个前端开发者的在线编译器,它支持HTML、CSS和JavaScript,并且可以实时预览代码效果。: Repl.it是一个支持多种编程语言的在线编译器,它提供了简洁明了的用户界面,使得用户能够快速开始编写和运行代码。: JSFiddle是一个支持HTML、CSS和JavaScript代码片段的在线编译器,它可以保存、分享和嵌入代码。

2024-04-19 21:24:29 327

原创 android gradle引入其他gradle文件

是一个Gradle属性,它指向项目的根目录。通过这种方式,你可以在多个模块中共享和重用Gradle配置。在Android项目中,如果你想在一个Gradle文件中引入另一个Gradle文件,你可以使用。假设你有一个通用的Gradle配置脚本。文件中,你可以这样引入这个。,它位于项目的根目录下。

2024-04-18 23:24:33 697

原创 Win32 API创建带有按钮的窗口

在这个代码示例中,我们首先定义了窗口过程函数`WindowProcedure`,它将处理窗口的所有消息。在WM_CREATE消息中,我们创建了一个按钮,并将其作为子窗口附加到主窗口上。按钮的文本设置为“Click Me”,并且其位置和大小也进行了设置。当按钮被点击时(即接收到WM_COMMAND消息),我们检查发送该命令的窗口元素的ID,如果与我们的按钮ID匹配,我们将显示一个消息框以告知用户按钮已被点击。最后,我们在`WinMain`函数中注册了窗口类,并创建了主窗口。// 在窗口中添加按钮。

2024-03-21 17:30:44 536

原创 Android学习笔记 Dialog

此外,`DialogFragment` 类还允许将对话框的 UI 作为嵌入式组件在较大 UI 中重复使用,就像传统 Fragment 一样 [#1](https://blog.csdn.net/qq_43567345/article/details/104237171)。这是 `DialogFragment` 的基础用法,下面将介绍一些不同样式的对话框 [#1](https://blog.csdn.net/qq_43567345/article/details/104237171)。

2024-03-06 10:13:16 623

原创 C语言实现可以最大化,最小化的窗口

在这个例子中,我们定义了一个窗口类,并设置了窗口过程函数`WindowProcedure`。在`WM_CREATE`消息处理中,我们设置窗口图标。`WM_PAINT`消息处理中,我们进行了窗口的绘制。`WM_SIZE`消息处理中,我们通过`MoveWindow`函数更新了窗口的位置和大小。注意,为了使窗口能够最大化或最小化,我们在创建窗口时使用了`WS_OVERLAPPEDWINDOW`样式,并且包含了`WS_MINIMIZEBOX`样式,这样窗口就会有一个最小化按钮。

2024-03-05 20:17:08 649

原创 C语言实现按钮

但是,你可以使用第三方的图形库,例如GTK+, Qt, 或者 Windows平台上的Win32 API来实现按钮的功能。CreateWindowEx(0, "Button", "点击我", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,hwnd = CreateWindow("Static", "窗口标题", WS_OVERLAPPEDWINDOW,", "提示", MB_OK);MessageBox(NULL, "无法创建窗口", "错误", MB_OK);

2024-03-05 19:34:44 718

原创 Android学习笔记:activity生命周期

`onRestart()`:在 Activity 被重新启动时调用,此时 Activity 可见,但不在前台,不能与用户交互。- `onStart()`:在 Activity 即将开始运行时调用,此时 Activity 可见,但不在前台,不能与用户交互。- `onStart()`:在 Activity 即将开始运行时调用,此时 Activity 可见,但不在前台,不能与用户交互。- `onStop()`:在 Activity 完全停止时调用,此时 Activity 不再可见,也不处于前台。

2024-03-05 19:00:09 498

原创 如何在Nanohttpd中配置https

例如,你可能需要处理证书的吊销问题,或者可能需要在服务器上实现一些特定的安全策略。这通常涉及到创建一个新的`SslSocketFactory`,然后将它传递给`NanoHTTPD`的构造函数。首先,你需要准备一个有效的SSL/TLS证书。最后,你需要用`TrustManagerFactory`的`getDefaultAlgorithm()`方法来初始化它。接着,你需要用`keyStore`和密码初始化`KeyManagerFactory`。然后,你需要创建一个`KeyStore`对象,并用你的证书填充它。

2024-02-29 12:50:57 431

原创 Android学习笔记 service启动方式

这种方式启动的服务可以进行通信。这种启动方式的优点是服务与客户端之间是典型的`client-server`模式,调用者是`client`,服务是`server`端,服务只有一个,但绑定到服务上的客户端可以有一个或很多个。这种启动方式的优点是服务不受其他进程影响,有利于为多个进程提供服务,具有较高的灵活性。需要注意的是,如果同时使用了`startService`和`bindService`这两种方式来启动服务,那么在停止服务时,应该同时使用`stopService`和`unbindService`方法。

2024-02-25 18:43:15 503

原创 Android service使用详解

当你调用`startService()`时,系统会立即开始执行Service,即使启动Service的组件已经销毁,Service仍会在后台继续运行。3. 调用`bindService()`方法,并将你的`Intent`对象、一个`ServiceConnection`对象和一个可选的`int`类型的标志作为参数传递给它。有两种主要的启动Service的方式:`startService()`和`bindService()`。在这个例子中,`MyService`是你自己创建的Service类的名称。

2024-02-24 10:52:12 753

原创 android service启动方式的区别与优缺点

这种方式启动的服务是后台服务,即使启动服务的组件(例如Activity或BroadcastReceiver)已经被销毁,服务仍然会在后台继续运行,直到你明确地停止服务。使用`startService()`启动服务的优点是你可以随时随地启动服务,不需要关心服务的生命周期,也不需要担心服务因为某些原因而被销毁。使用`bindService()`启动服务的优点是你可以更好地管理服务的生命周期,并且可以通过绑定服务的方式让其他应用程序发现并利用你的服务。另外,由于服务是在前台运行的,所以可能会影响用户的体验。

2024-02-24 10:49:34 317

原创 Android StateLiveData使用详解

通过使用StateLiveData,您可以更方便地管理应用程序的不同状态,例如加载中、成功、错误等。通过以上步骤,您可以使用StateLiveData来管理应用程序的状态,并在不同的状态下执行相应的逻辑。// 设置成功状态,并传递数据data。3. 在需要使用状态管理的地方,创建一个MyStateLiveData对象,并观察其状态变化。// 处理错误状态,并使用错误信息errorMessage。// 处理成功状态,并使用数据data。4. 在需要改变状态的地方,调用对应的方法来更新状态。

2024-02-24 07:18:39 740

原创 compose 创建button示例

在这个 Activity 的例子中,setContent 方法用于设置应用的 UI 内容,这里我们调用了 ButtonExample 函数来显示我们的按钮。在这个示例中,Button 组件接受一个 onClick 参数,这是一个 Lambda 表达式,定义了当用户点击按钮时应该执行的操作。在这个例子中,点击事件是空的,你可以在这里添加你自己的逻辑,比如跳转到新的屏幕、更新 UI 状态等。在 Jetpack Compose 中,创建一个按钮(Button)的实例是相对简单的。// 按钮内部的文本。

2024-02-23 14:01:06 686

原创 Android手写下拉刷新

但是,如果你想使用Kotlin手动实现下拉刷新的功能,你需要自定义一个View或者使用现有的第三方库。例如,你可能需要添加动画效果,处理不同屏幕尺寸和方向,以及处理其他触摸事件。当用户释放时,如果状态是RELEASE_TO_REFRESH,则触发刷新操作,并更新状态为REFRESHING。RELEASE_TO_REFRESH:用户下拉到可以刷新的阈值,但还没有释放。当状态变为RELEASE_TO_REFRESH时,显示刷新动画或提示。刷新操作完成后,更新状态为IDLE,并隐藏刷新动画或提示。

2024-02-22 22:55:53 548

原创 Android 手写viewpager

注意:这个实现非常基础,并且没有处理很多ViewPager的常用功能,如页面间的过渡动画、页面指示器等。如果你需要更完整的功能,建议使用Android提供的ViewPager或第三方库,如ViewPager2。这个SimpleViewPager类只是一个基础的实现,它使用了Scroller来处理滚动,并使用GestureDetector来检测滑动事件。当滑动发生时,它会计算滑动的距离,并据此决定要切换到哪个页面。

2024-02-22 10:14:06 478

原创 Android compose入门demo

Android Compose 是 Android 的一个新 UI 工具包,用于构建原生 Android 应用。在你的 Activity 或 Fragment 的 onCreate 方法中,使用 setContent 方法来设置你的 Compose UI。在 Android Studio 中点击运行按钮,你的应用应该会启动并显示一个简单的登录界面,其中包含两个文本字段和一个登录按钮。在你的 Activity 或 Fragment 中,使用 setContent 方法来设置 Compose UI。

2024-02-21 18:44:47 573

原创 RxAndroid使用详解

接着,我们订阅了subject,并指定了两个调度器:Schedulers.io()用于在IO线程执行异步任务(例如网络请求),AndroidSchedulers.mainThread()用于在主线程更新UI。最后,在subscribe方法中,我们定义了三个Lambda表达式,分别处理发射的数据(onNext),错误情况(onError),以及完成情况(onComplete)。() -> { /* 处理完成 */ } // onComplete:处理完成情况。// 订阅subject,处理异步任务。

2024-02-21 12:57:19 496

原创 c语言实现贪吃蛇

C语言简单实现贪吃蛇

2022-12-10 23:47:50 673 2

原创 vscode创建flutter项目无法运行的解决方法

1,根据本地gradle version修改distributionUrl的gradle version2,添加国内镜像3,根据flutter支持的Android SDK version修改compileSdkVersion和targetSdkVersion

2020-12-06 15:53:37 1708

原创 多module下统一gradle配置

1,在project目录下新建 myConfig.gradle , 里面内容格式如下:/** * 项目使用自定义gradle文件来统一管理三方依赖。 */ext { android = [ compileSdkVersion: 30, buildToolsVersion: "30.0.2", minSdkVersion : 21, targetSdkVersion : 30,

2020-11-04 10:27:01 301

原创 Kotlin使用ARouter基本步骤

1,在每个module下的build.gradle里: plugins{ id 'kotlin-kapt' } andorid{ defaultconfig{ kapt { arguments {arg("AROUTER_MODULE_NAME", project.getName())} } } multiDexEnabled tru...

2020-11-01 22:20:51 649

android_query_api

android_query_api

2013-12-14

百度地图api

百度地图api

2013-12-08

unetbootin

u盘绕过win7开机密码

2013-10-29

空空如也

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

TA关注的人

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