只用老版,直接用:1.3.0
FROM:
https://github.com/AigeStudio/WheelPicker
https://github.com/open-android/WheelPicker
Step 1. Add the JitPack repository to your build file
gradle maven sbt leiningen Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.ZhXyLy:WheelPicker:latest-version'
}
.setTitle("标题")//设置标题
.setTitleTextSize(12)//标题文字大小
.setItemTextSize(20)//Item文字大小
.setShowUnit(true)//是否显示单位
.setData(stringData)//设置数据(对象需要implements Data,或者字符串直接用StringData)
.setUnit("元")//单位
.setDefaultById(id)//通过ID设置默认项
.setDefaultByText(text)//通过文字设置默认项
日期
.setDateMode(DatePicker.ALL)//设置DateMode,ALL,NO_YEAR,NO_DAY
.setShowWeek(true)//是否显示周
.setDefaultDate(defaultDate)//默认日期
.setRangeDate(minDate,maxDate)//最大最小日期,没有的用null,默认1900-2100
.setUnit("年","月","日")//单位,默认既是年月日
时间
.setTimeMode(TimePicker.ALL)//时间模式,ALL,NO_HOUR,NO_SECOND
.setMinuteInterval(5)//设置间隔分钟
.setSecondInterval(5)//设置间隔秒
.setDefaultDate(defaultTime)
.setUnit("年","月","日")//单位,默认既是年月日
区域
.setShortText(true)//是否显示为简称(默认false)
.setAdjustTextSize(false)//是否自动调整文字大小(默认true)
可以直接使用
<com.jx.wheelpicker.widget.lasted.XxxPicker>
或者
使用Dialog
注:需要implements Data,如果是单独的String可以直接使用StringData。
private void showSingleLastedDialog() {
if (singlePickerDialog == null) {
singlePickerDialog = new SinglePickerDialog.SingleBuilder(this)
.setData(stringData)
.setOnChangedListener(new SinglePickerDialog.OnChangedListener() {
@Override
public void onChanged(SinglePicker singlePicker, Data data) {
tvLastedResult.setText(data == null ? "没选到东西" : data.getText());
}
})
.setOnPickListener(new SinglePickerDialog.OnPickListener() {
@Override
public void onPicked(SinglePicker singlePicker, Data data) {
ToastUtils.show(data == null ? "没选到东西" : data.getText());
}
})
.build();
}
singlePickerDialog.show();
}
private void showLastedDialog() {
if (mPickerDialog == null) {
mPickerDialog = new DatePickerDialog.DateBuilder(this)
.setOnDateChangedListener(new DatePickerDialog.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int day, String week) {
tvLastedResult.setText(String.format("%s-%s", datePicker.getDateString(), week));
}
})
.setOnPickerDateListener(new DatePickerDialog.OnPickerDateListener() {
@Override
public void onPickerDate(DatePicker datePicker, int year, int month, int day, String week) {
ToastUtils.show(String.format("%s-%s", datePicker.getDateString(), week));
}
})
.build();
}
mPickerDialog.show();
}
private void showLastedDialog() {
if (mPickerDialog == null) {
mPickerDialog = new TimePickerDialog.TimeBuilder(this)
.setOnTimeChangedListener(new TimePickerDialog.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int hour, int minute, int second) {
tvLastedResult.setText(timePicker.getTimeString());
}
})
.setOnPickTimeListener(new TimePickerDialog.OnPickTimeListener() {
@Override
public void onTimePicked(TimePicker timePicker, int hour, int minute, int second) {
ToastUtils.show(timePicker.getTimeString());
}
})
.build();
}
mPickerDialog.show();
}
private void showLastedDialog() {
if (mPickerDialog == null) {
mPickerDialog = new AreaPickerDialog.AreaBuilder(this)
.setShortText(true)
.setOnAreaChangedListener(new AreaPickerDialog.OnAreaChangedListener() {
@Override
public void onAreaChanged(AreaPicker areaPicker, Province province, City city, Area area) {
tvLastedResult.setText(areaPicker.getAreaString(" "));
}
})
.setOnPickerAreaListener(new AreaPickerDialog.OnPickerAreaListener() {
@Override
public void onPickerArea(AreaPicker areaPicker, Province province, City city, Area area) {
ToastUtils.show(areaPicker.getAreaString("-"));
}
})
.build();
}
mPickerDialog.show();
}
private void showAreaDialog() {
if (wheelAreaPickerBottomDialog == null) {
wheelAreaPickerBottomDialog = new WheelAreaPickerBottomDialog(this);
wheelAreaPickerBottomDialog.setSelectPositionByCode(viewModel.getSsqCode());
wheelAreaPickerBottomDialog.setOnWheelScrollChangedListener(iWheelAreaPicker -> {
Province province = iWheelAreaPicker.getProvince();
City city = iWheelAreaPicker.getCity();
Area area = iWheelAreaPicker.getArea();
String ssq = province.getName() + city.getName() + area.getName();
Toast.makeText(MainActivity.this, ssq, Toast.LENGTH_SHORT).show();
});
//同样,点确认回调
//wheelAreaPickerBottomDialog.setOnPickerAreaListener(new WheelAreaPickerBottomDialog.OnPickerAreaListener() {
// @Override
// public void onPickerArea(IWheelAreaPicker wheelAreaPicker) {
// String province = wheelAreaPicker.getProvince().getName();
// String city = wheelAreaPicker.getCity().getName();
// String area = wheelAreaPicker.getArea().getName();
// Toast.makeText(MainActivity.this, province + "-" + city + "-" + area, Toast.LENGTH_SHORT).show();
// }
});
}
wheelAreaPickerBottomDialog.show();
}
private void showDateDialog() {
//和上边的一样,两种Lisenter
if (wheelDatePickerBottomDialog == null) {
wheelDatePickerBottomDialog = new WheelDatePickerBottomDialog(this);
wheelDatePickerBottomDialog.setTitle(R.string.expect_review_date);
wheelDatePickerBottomDialog.setSelectPositionByDate(date);//由于各种日期格式,所以传入Date
wheelDatePickerBottomDialog.setOnPickerDateListener(new WheelDatePickerBottomDialog.OnPickerDateListener() {
@Override
public void onPickerDate(IWheelDatePicker wheelDatePicker) {
String stringDate = wheelDatePicker.getStringDate("yyyy年MM月dd日");
Toast.makeText(MainActivity.this, stringDate, Toast.LENGTH_SHORT).show();
}
});
}
wheelDatePickerBottomDialog.show();
}
private void showWheelPicker() {
if (typeWheelPickerBottomDialog == null) {
typeWheelPickerBottomDialog = new WheelPickerBottomDialog(this);
typeWheelPickerBottomDialog.setVisibleCount(5);//默认7个
typeWheelPickerBottomDialog.setData(dailyTypes);
typeWheelPickerBottomDialog.setTitle("选择类型");//小标题,也可以StringRes
typeWheelPickerBottomDialog.setSelectPosition(viewModel.getDailyTypeName());//默认选中,通过显示文字equals来判断
//监听OnWheelScrollChangedListener,滚动每一个都回调,
//如果点击确认再回调,监听OnWheelPickerListener
typeWheelPickerBottomDialog.setOnWheelScrollChangedListener((wheelPicker, o, pickerName, position) -> {
Toast.makeText(MainActivity.this, pickerName, Toast.LENGTH_SHORT).show();
});
}
typeWheelPickerBottomDialog.show();
}
<color name="wp_date_select_item_color">#000000</color><!--滚轮选中item的颜色-->
<color name="wp_date_unit_color">#000000</color><!--滚轮里单位文字颜色-->
<color name="list_date_item_color">#000000</color><!--区域列表item颜色-->
<color name="list_date_select_item_color">?attr/colorAccent</color><!--区域列表item选中的颜色-->
String filePath = getFilesDir().getAbsolutePath() + "/province_json.json";
AreaUtils.getInstance().setFilePath(filePath);
AreaUtils.getInstance().setOnEmptyDataListener(new OnEmptyDataListener() {
@Override
public void onEmptyData() {
Toast.makeText(MainActivity.this, "数据时空的", Toast.LENGTH_SHORT).show();
}
});