/QAndroid

简单小巧、快速的android app开发框架。基于dataBinding的mvvm架构,使用kotlin开发更迅捷。

Primary LanguageKotlin

QAndroid

简单小巧、快速的android app开发框架。

更少的代码实现功能,并且便于维护。

基于dataBinding的mvvm架构、使用kotlin开发更迅捷。

框架已经集成okhttp、glide、fastjson和友盟统计。

关于使用

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    api 'com.github.ddoolcg:QAndroid:1.9.83'
}

核心类QAndroid

QAndroid.initUIUtils(this)
    .initToken("Authorization") {
        gotoLoin(it)
    }
    .setTranslucentStatusTheme(false)

联网调用

HttpUrl("url").joinProgressDialog(activity).formBody(map).post<T> { TODO() }
//自定义网络错误处理
QAndroid.setNetFailDefault { code, data ->
    TODO()
    //是否break向下传递(框架的网络错误处理)
    true
}

SharedPreferences操作

操作类

PreferenceKTX

多次put采用Any扩展

preferenceEdit {
    putBoolean()
    putString()
}

List简单实现

Fragment

基于dataBinding的实现的ListFragment,函数说明:

name 说明
loadData 装载数据列表,会清除掉历史数据
addData 添加数据列表,不会清除掉历史数据
removeItem 移除一条数据
filter 过滤,需要复写item的toString(),多个关键字以空格分隔

RecyclerView.Adapter

基于dataBinding的实现的CommentAdapter

//单一类型
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 调用:

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 这时候你可以在任何地方很方便的使用权限请求了

(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 {
        //没有定位权限
    }
}