# QAndroid **Repository Path**: leicg/QAndroid ## Basic Information - **Project Name**: QAndroid - **Description**: 简单小巧、快速的android app开发框架。基于dataBinding的mvvm架构,使用kotlin开发更迅捷。 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 1 - **Created**: 2019-07-24 - **Last Updated**: 2025-08-22 ## Categories & Tags **Categories**: android-modules **Tags**: None ## README # QAndroid 简单小巧、快速的android app开发框架。 更少的代码实现功能,并且便于维护。 基于dataBinding的mvvm架构、使用kotlin开发更迅捷。 框架已经集成okhttp、glide、fastjson和友盟统计。 # 关于使用 ~~~gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ~~~ ~~~gradle dependencies { api 'com.github.ddoolcg:QAndroid:1.9.83' } ~~~ # 核心类QAndroid ~~~kotlin QAndroid.initUIUtils(this) .initToken("Authorization") { gotoLoin(it) } .setTranslucentStatusTheme(false) ~~~ # 联网调用 ~~~kotlin HttpUrl("url").joinProgressDialog(activity).formBody(map).post { TODO() } //自定义网络错误处理 QAndroid.setNetFailDefault { code, data -> TODO() //是否break向下传递(框架的网络错误处理) true } ~~~ # SharedPreferences操作 #### 操作类 ~~~kotlin PreferenceKTX ~~~ #### 多次put采用Any扩展 ~~~kotlin preferenceEdit { putBoolean() putString() } ~~~ # List简单实现 #### Fragment 基于dataBinding的实现的ListFragment,函数说明: | name | 说明 | |------------|-----------------------------------| | loadData | 装载数据列表,会清除掉历史数据 | | addData | 添加数据列表,不会清除掉历史数据 | | removeItem | 移除一条数据 | | filter | 过滤,需要复写item的toString(),多个关键字以空格分隔 | #### RecyclerView.Adapter 基于dataBinding的实现的CommentAdapter ~~~kotlin //单一类型 CommentAdapter(items, R.layout.item_demo, BR.item) //多样化的items CommentAdapter(items) ~~~ 构造函数说明: | name | 说明 | |-------------|---------------------| | data | 数据列表 | | mLayoutId | layout布局 | | mVariableId | BR ID,也就是xml的data | | footer | 底部的加载更多,为null表示无该功能 | # 页面实现demo activity: https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/java/com/lcg/comment/activity/auth/LoginActivity.kt xml: https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/res/layout/activity_login.xml model: https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/java/com/lcg/comment/model/Login.kt #### ListActivity activity: https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/java/com/lcg/comment/ListActivity.kt model: https://github.com/ddoolcg/QAndroid/blob/master/app/src/main/java/com/lcg/expressbus/model/ListViewModelDemo.kt 调用: ~~~kotlin val bundle = Bundle().apply { putString("id", "my id") } ListActivity.start(this@MainActivity, ListViewModelDemo::class.java, bundle) ~~~ # DataEntry无法满足你的需求可参考: https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/java/com/lcg/comment/net/Base200Handler.java https://github.com/ddoolcg/QAndroid/blob/master/comment/src/main/java/com/lcg/comment/net/MyUrl.kt # 权限请求 只需要继承com.lcg.mylibrary.PermissionsActivity 这时候你可以在任何地方很方便的使用权限请求了 ~~~kotlin (activity as? PermissionsActivity)?.requestPermissions( Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_FINE_LOCATION ) { success -> if (success) { TODO() //app获得全部权限 } else { //某项权限申请被拒。 } } (activity as? PermissionsActivity)?.requestPermissions(Manifest.permission.ACCESS_FINE_LOCATION) { success -> if (success) { TODO() } else { //没有定位权限 } } ~~~