README.md 3.4 KB

Picker

Picker仿京东地址选择器

使用

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

repositories {
        maven {
            url "http://maven.keleyanyi.com/repository/benyanyi/"
        }
    }

module 下添加

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

或者

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

调用

PickerHelper.getInstance()
            .init(this,false(不填默认为true))
            .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)"
    }

}

更新记录

  • 2021-11-08 提交1.0.9版本,修复同一个页面插入不同数据缓存问题
  • 2021-08-27 提交1.0.8版本,修改maven地址
  • 2021-03-12 提交1.0.7版本,修复第一次不选择后取消再重新选择闪退问题
  • 2020-12-01 提交1.0.6版本,添加数据不要存储参数
  • 2020-07-22 提交1.0.5版本,修复再次打开当前activity时调起弹窗出现闪退问题
  • 2020-05-29 提交1.0.4版本,自定义数据源仿京东地址选择库

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