README.md 2.9 KB

BindView

BindView注解封装

使用

根目录下build.gradle添加Maven地址

repositories {
        maven {
            url "http://maven.benyanyi.com:8081/nexus/content/repositories/mylove/"
        }
    }

module 下添加

implementation 'com.yanyi.benyanyi:picker:1.0.1'

或者

<dependency>
  <groupId>com.yanyi.benyanyi</groupId>
  <artifactId>picker</artifactId>
  <version>1.0.1</version>
  <type>aar</type>
</dependency>

调用

PickerHelper.getInstance()
            .init(this)
            .setData(list)//数据源
            .show()
            .setPickerCallback { msgList, indexList ->//msgList(选中的字符) indexList(选中的字符对应的数据源的下标)
                Jlog.a(msgList)
                Jlog.a(indexList)
            }

注意

数据源使用的实体类需要继承PickerBean,并覆写其中的name及list

例如:

class CityBean : PickerBean<Children>() {
    @SerializedName("label")
    private var name: String = ""
    var value: String? = null

    @SerializedName("children")
    private var children: List<Children> = arrayListOf()

    override fun setName(name: String) {
        this.name = name
    }

    override fun getName(): String {
        return name
    }

    override fun setList(list: List<Children>) {
        this.children = list
    }

    override fun getList(): List<Children>? {
        return children
    }

    override fun toString(): String {
        return "CityBean(name='$name', value=$value, children=$children)"
    }

}


class Children : PickerBean<ChildrenX>() {

    @SerializedName("label")
    private var name: String = ""
    var value: String? = null

    @SerializedName("children")
    private var children: List<ChildrenX> = arrayListOf()

    override fun setName(name: String) {
        this.name = name
    }

    override fun getName(): String {
        return name
    }

    override fun setList(list: List<ChildrenX>) {
        this.children = list
    }

    override fun getList(): List<ChildrenX>? {
        return children
    }

    override fun toString(): String {
        return "Children(name='$name', value=$value, children=$children)"
    }

}

class ChildrenX : PickerBean<ChildrenX>() {

    @SerializedName("label")
    private var name: String = ""
    var value: String? = null

    override fun setName(name: String) {
        this.name = name
    }

    override fun getName(): String {
        return name
    }

    override fun toString(): String {
        return "ChildrenX(name='$name', value=$value)"
    }

}

更新记录

  • 2019-05-29 提交1.0.1版本,自定义数据源仿京东地址选择库

若在使用过程中出现什么问题,可以联系作者
作者:演绎
QQ:1541612424
email: ben@yanyi.red
微信公众号:benyanyi(演绎未来)   将会不定期的更新关于android的一些文章