Skip to content

yangchangfu/PickView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4635577 · Aug 30, 2016

History

32 Commits
Aug 30, 2016
Aug 30, 2016
Jun 22, 2016
Jun 23, 2016
Aug 30, 2016
Jun 22, 2016
Aug 30, 2016
Jun 22, 2016
Aug 30, 2016
Aug 30, 2016
Jun 22, 2016
Jun 22, 2016
Jun 22, 2016
Jun 22, 2016
Aug 30, 2016

Repository files navigation

##PickView

Android数据选择器,欢迎使用。好用的话,亲,赏个星星吧❤️

##Android选择器的类型:

  • 三列联动:PickView.Style.THREE
  • 两列联动:PickView.Style.DOUBLE
  • 一列: PickView.Style.SINGLE
public enum Style {
        SINGLE, DOUBLE, THREE
 }

##使用方法:

pickView.setPickerView(datas, PickView.Style.THREE);//数据、选择器的类型

##属性与方法: 1、属性:isShow;//弹出状态属性

System.out.println("pickView isshow = " + pickView.isShow);

2、show();

pickView.show();

3、dismiss();

pickView.show();

##Demo preview_1

Screenshot

##Gradle

dependencies{
    compile 'com.yangchangfu:pickview-lib:1.0.3'
}

##版本更新与问题记录:

1、v1.0.1版本新增了PickView弹出视图的状态属性:isShow;

2、v1.0.2版本解决的问题: (1)多级同时滑动奔溃的问题; (2)Android部分手机存在虚拟键盘的遮挡问题;

3、v1.0.3版本新增了PickView弹出视图的状态监听事件接口:OnStateChangeListener;

Usage

Step 1

  • init data
/**
 * 初始化数据
 */
public void initDatas() {
    List<Item> items = new ArrayList<>();

    String[] data = {"农家乐", "亲子园", "欢乐谷", "游泳馆", "其他"};

    for (int i = 0; i < data.length; i++) {
        Item item = new Item();
        item.name = data[i];

        items.add(item);
    }

    this.datas = items;
}

/**
 * 初始化分类的数据
 */
public void initCates() {
    List<Item> items = new ArrayList<>();

    String[] data = {"电影", "音乐", "电台", "游戏"};
    String[] data1 = {"速度与激情7", "魔兽", "变形金刚4", "孤岛危机", "生化危机4"};
    String[] data2 = {"爱你一万年", "死了都要爱", "我相信", "默", "其他"};
    String[] data3 = {"时光电台", "其他"};
    String[] data4 = {"魔兽", "传奇", "孤岛危机", "穿越火箭", "其他"};

    for (int i = 0; i < data.length; i++) {
        Item item = new Item();
        item.name = data[i];

        List<Item> items1 = new ArrayList<>();

        if (i == 0){
            for (int j = 0; j < data1.length; j++) {
                Item item1 = new Item();
                item1.name = data1[j];
                items1.add(item1);
            }
        }
        else if (i == 1){
            for (int j = 0; j < data2.length; j++) {
                Item item1 = new Item();
                item1.name = data2[j];
                items1.add(item1);
            }
        }
        else if (i == 2){
            for (int j = 0; j < data3.length; j++) {
                Item item1 = new Item();
                item1.name = data3[j];
                items1.add(item1);
            }
        }
        else if (i == 3){
            for (int j = 0; j < data4.length; j++) {
                Item item1 = new Item();
                item1.name = data4[j];
                items1.add(item1);
            }
        }

        item.items = items1;

        items.add(item);
    }

    this.cates = items;
}

/**
* 初始化城市的数据
*/
public void initCityData() {

//获取所有的省市数据
List<ProvinceModel> provices = readAllCityData();
List<Item> items = new ArrayList<>();

for (int i=0; i<provices.size(); i++){

    ProvinceModel province = provices.get(i);
    Item item = new Item();
    item.name = province.getName();

    //该省市下,所有的城市数据
    List<CityModel> citys = province.getCityList();
    List<Item> items1 = new ArrayList<>();

    for (int j=0; j<citys.size(); j++){

        CityModel city = citys.get(j);
        Item item1 = new Item();
        item1.name = city.getName();

        //该城市下,所有的区数据
        List<DistrictModel> districts = city.getDistrictList();
        List<Item> items2 = new ArrayList<>();

        for (int k=0; k<districts.size(); k++){

            DistrictModel district = districts.get(k);

            Item item2 = new Item();
            item2.name = district.getName();
            items2.add(item2);
        }

        item1.items = items2;
        items1.add(item1);
    }

    item.items = items1;
    items.add(item);
}

this.cityItems = items;
}

Step 2

  • create a pickview, and show it.
/**
* 选择城市
*
* @param view
*/
public void selectCityClick(View view) {

    cityPickView = new PickView(this);
    cityPickView.setPickerView(cityItems, PickView.Style.THREE);
    cityPickView.setShowSelectedTextView(true);
    cityPickView.setOnSelectListener(this);
    cityPickView.show();
}

/**
 * 选择类型
 *
 * @param view
 */
public void selectCateClick(View view) {

    catePickView = new PickView(this);
    catePickView.setPickerView(cates, PickView.Style.DOUBLE);
    catePickView.setShowSelectedTextView(true);
    catePickView.setOnSelectListener(this);
    catePickView.show();
}

/**
 * 选择数据
 *
 * @param view
 */
public void selectDataClick(View view) {

    dataPickView = new PickView(this);
    dataPickView.setPickerView(datas, PickView.Style.SINGLE);
    dataPickView.setShowSelectedTextView(true);
    dataPickView.setOnSelectListener(this);
    dataPickView.show();
}

Step 3

  • listener item click event
@Override
public void OnSelectItemClick(View view, int[] selectedIndexs, String selectedText) {

    System.out.println("-----------------OnSelectItemClick-----------------");
    System.out.println("view class = " + view.getClass());

    for (int i = 0; i < selectedIndexs.length; i++) {
        System.out.println("selectedIndexs[" + i + "] = " + selectedIndexs[i]);
    }
    System.out.println("selectedText = " + selectedText);

    //更新按钮
    if (view == cityPickView) {
        button1.setText(selectedText);
    } else if (view == catePickView) {
        button2.setText(selectedText);
    } else {
        button3.setText(selectedText);
    }
}

Other

  • If you have questions, please contact me
QQ : 276054866

##Dependence

##Thanks

  • Yuri Kanivets [Numeric wheel view](Yuri Kanivets)

About

A android pick view

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages