Skip to content

Commit fb68dd7

Browse files
committed
不滑动时默认选中第一项;修复日期选择器的Bug
1 parent c565c32 commit fb68dd7

17 files changed

Lines changed: 158 additions & 315 deletions

File tree

Picker/src/main/java/cn/qqtheme/framework/helper/Common.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,10 @@ public static int calculateHeight(View view) {
208208
return totalHeight;
209209
}
210210

211+
public static int calculateDaysInMonth(int month) {
212+
return calculateDaysInMonth(0, month);
213+
}
214+
211215
public static int calculateDaysInMonth(int year, int month) {
212216
// 添加大小月月份并将其转换为list,方便之后的判断
213217
String[] bigMonths = {"1", "3", "5", "7", "8", "10", "12"};
@@ -220,6 +224,9 @@ public static int calculateDaysInMonth(int year, int month) {
220224
} else if (littleList.contains(String.valueOf(month))) {
221225
return 30;
222226
} else {
227+
if (year <= 0) {
228+
return 29;
229+
}
223230
// 是否闰年
224231
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
225232
return 29;

Picker/src/main/java/cn/qqtheme/framework/picker/AddressPicker.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import cn.qqtheme.framework.view.WheelView;
1313

1414
/**
15-
* 地址选择器(包括省级、地级、县级)
15+
* 地址选择器(包括省级、地级、县级)。地址数据见“city.json”,来源于国家统计局官网(http://www.stats.gov.cn/tjsj/tjbz/xzqhdm)
1616
*
1717
* @author 李玉江[QQ:1032694760]
1818
* @since 2015/12/15
@@ -33,12 +33,6 @@ public AddressPicker(Activity activity, ArrayList<Province> data) {
3333
this.data.addAll(data);
3434
}
3535

36-
// public void setSelected(String province, String city, String county) {
37-
// this.selectedProvince = province;
38-
// this.selectedCity = city;
39-
// this.selectedCounty = county;
40-
// }
41-
4236
public void setOnAddressPickListener(OnAddressPickListener listener) {
4337
this.onAddressPickListener = listener;
4438
}

Picker/src/main/java/cn/qqtheme/framework/picker/ConstellationPicker.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,20 @@ public class ConstellationPicker extends OptionPicker {
1313

1414
public ConstellationPicker(Activity activity) {
1515
super(activity, new String[]{
16-
"水瓶座",
17-
"双鱼座",
18-
"白羊座",
19-
"金牛座",
20-
"双子座",
21-
"巨蟹座",
22-
"狮子座",
23-
"处女座",
24-
"天秤座",
25-
"天蝎座",
26-
"射手座",
27-
"摩羯座",
16+
"水瓶",
17+
"双鱼",
18+
"白羊",
19+
"金牛",
20+
"双子",
21+
"巨蟹",
22+
"狮子",
23+
"处女",
24+
"天秤",
25+
"天蝎",
26+
"射手",
27+
"摩羯",
2828
});
29+
setLabel("座");
2930
}
3031

3132
}

Picker/src/main/java/cn/qqtheme/framework/picker/DatePicker.java

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -60,27 +60,6 @@ public void setRange(int startYear, int endYear) {
6060
this.endYear = endYear;
6161
}
6262

63-
// public void setSelected(int year, int month, int day) {
64-
// if (year > startYear && year < endYear) {
65-
// selectedYear = year;
66-
// }
67-
// if (month > 0 && month < 13) {
68-
// selectedMonth = month;
69-
// }
70-
// int maxDays = Common.calculateDaysInMonth(year, month);
71-
// if (day > 0 && day <= maxDays) {
72-
// selectedDay = day;
73-
// }
74-
// }
75-
//
76-
// public void setSelected(int yearOrMonth, int monthOrDay) {
77-
// if (mode.equals(Mode.YEAR_MONTH)) {
78-
// setSelected(yearOrMonth, monthOrDay, 0);
79-
// } else if (mode.equals(Mode.MONTH_DAY)) {
80-
// setSelected(0, yearOrMonth, monthOrDay);
81-
// }
82-
// }
83-
8463
public void setOnDatePickListener(OnDatePickListener listener) {
8564
this.onDatePickListener = listener;
8665
}
@@ -96,7 +75,7 @@ protected View initContentView() {
9675
TextView yearTextView = new TextView(activity);
9776
yearTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
9877
yearTextView.setTextSize(22);
99-
yearTextView.setTextColor(WheelView.FOCUS_COLOR);
78+
yearTextView.setTextColor(WheelView.TEXT_COLOR_FOCUS);
10079
if (!TextUtils.isEmpty(yearLabel)) {
10180
yearTextView.setText(yearLabel);
10281
}
@@ -107,7 +86,7 @@ protected View initContentView() {
10786
TextView monthTextView = new TextView(activity);
10887
monthTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
10988
monthTextView.setTextSize(22);
110-
monthTextView.setTextColor(WheelView.FOCUS_COLOR);
89+
monthTextView.setTextColor(WheelView.TEXT_COLOR_FOCUS);
11190
if (!TextUtils.isEmpty(monthLabel)) {
11291
monthTextView.setText(monthLabel);
11392
}
@@ -118,7 +97,7 @@ protected View initContentView() {
11897
TextView dayTextView = new TextView(activity);
11998
dayTextView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
12099
dayTextView.setTextSize(22);
121-
dayTextView.setTextColor(WheelView.FOCUS_COLOR);
100+
dayTextView.setTextColor(WheelView.TEXT_COLOR_FOCUS);
122101
if (!TextUtils.isEmpty(dayLabel)) {
123102
dayTextView.setText(dayLabel);
124103
}
@@ -139,10 +118,6 @@ protected View initContentView() {
139118
years.add(String.valueOf(i));
140119
}
141120
yearView.setItems(years);
142-
// int year = Calendar.getInstance().get(Calendar.YEAR);
143-
// if (selectedYear == 0 && year > startYear && year < endYear) {
144-
// selectedYear = year;
145-
// }
146121
yearView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
147122
@Override
148123
public void onSelected(int selectedIndex, String item) {
@@ -158,10 +133,6 @@ public void onSelected(int selectedIndex, String item) {
158133
months.add(Common.fillZore(i));
159134
}
160135
monthView.setItems(months);
161-
// if (selectedMonth == 0) {
162-
// //月份是从0开始计数
163-
// selectedMonth = Calendar.getInstance().get(Calendar.MONTH) + 1;
164-
// }
165136
monthView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
166137
@Override
167138
public void onSelected(int selectedIndex, String item) {
@@ -179,18 +150,18 @@ public void onSelected(int selectedIndex, String item) {
179150
if (!TextUtils.isEmpty(dayLabel)) {
180151
dayTextView.setText(dayLabel);
181152
}
182-
int maxDays = Common.calculateDaysInMonth(selectedYear, selectedMonth);
153+
//年月日选择时,最大天数根据年月来计算
154+
int maxDays;
155+
if (mode.equals(Mode.YEAR_MONTH_DAY)) {
156+
maxDays = Common.calculateDaysInMonth(selectedYear, selectedMonth);
157+
} else {
158+
maxDays = Common.calculateDaysInMonth(selectedMonth);
159+
}
183160
ArrayList<String> days = new ArrayList<String>();
184161
for (int i = 1; i <= maxDays; i++) {
185162
days.add(Common.fillZore(i));
186163
}
187164
dayView.setItems(days);
188-
// if (selectedDay == 0) {
189-
// int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
190-
// if (day > 0 && day <= maxDays) {
191-
// selectedDay = day;
192-
// }
193-
// }
194165
dayView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
195166
@Override
196167
public void onSelected(int selectedIndex, String item) {

Picker/src/main/java/cn/qqtheme/framework/picker/DayPicker.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,4 @@ public DayPicker(Activity activity, int year, int month) {
2222
}
2323
}
2424

25-
public void setSelected(int day) {
26-
super.setSelected(String.valueOf(day));
27-
}
28-
2925
}

Picker/src/main/java/cn/qqtheme/framework/picker/HourPicker.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,4 @@ public HourPicker(Activity activity, Mode mode) {
3636
}
3737
}
3838

39-
public void setSelected(int hour) {
40-
// 0-9前补0
41-
super.setSelected(hour < 10 ? "0" + hour : "" + hour);
42-
}
43-
4439
}

Picker/src/main/java/cn/qqtheme/framework/picker/MinutePicker.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,4 @@ public MinutePicker(Activity activity) {
2020
}
2121
}
2222

23-
public void setSelected(int i) {
24-
// 0-9前补0
25-
super.setSelected(i < 10 ? "0" + i : "" + i);
26-
}
27-
2823
}

Picker/src/main/java/cn/qqtheme/framework/picker/MonthPicker.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,4 @@ public MonthPicker(Activity activity) {
2020
}
2121
}
2222

23-
public void setSelected(int i) {
24-
// 0-9前补0
25-
super.setSelected(i < 10 ? "0" + i : "" + i);
26-
}
27-
2823
}

Picker/src/main/java/cn/qqtheme/framework/picker/OptionPicker.java

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,6 @@ public void setLabel(String label) {
3535
this.label = label;
3636
}
3737

38-
public void setSelected(String option) {
39-
// if (options.contains(option)) {
40-
// this.selectedOption = option;
41-
// }
42-
}
43-
44-
//
45-
public void setSelected(int index) {
46-
// if (index >= 0 && index < options.size()) {
47-
// this.selectedOption = options.get(index);
48-
// }
49-
}
50-
5138
public void setOnOptionPickListener(OnOptionPickListener listener) {
5239
this.onOptionPickListener = listener;
5340
}
@@ -65,19 +52,13 @@ protected View initContentView() {
6552
layout.addView(optionView);
6653
TextView labelView = new TextView(activity);
6754
labelView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
68-
labelView.setTextColor(WheelView.FOCUS_COLOR);
55+
labelView.setTextColor(WheelView.TEXT_COLOR_FOCUS);
6956
labelView.setTextSize(22);
7057
layout.addView(labelView);
7158
if (!TextUtils.isEmpty(label)) {
7259
labelView.setText(label);
7360
}
7461
optionView.setItems(options);
75-
// if (TextUtils.isEmpty(selectedOption)) {
76-
// optionView.setSelected(0);
77-
// selectedOption = optionView.getSelectedItem();
78-
// } else {
79-
// optionView.setSelected(selectedOption);
80-
// }
8162
optionView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
8263
@Override
8364
public void onSelected(int selectedIndex, String item) {

Picker/src/main/java/cn/qqtheme/framework/picker/SexPicker.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,6 @@ public SexPicker(Activity activity) {
2424
*/
2525
public void onlyMaleAndFemale() {
2626
options.remove(options.size() - 1);
27-
setSelected(options.size() - 1);
28-
}
29-
30-
public void defaultSelected() {
31-
setSelected(options.size() - 1);
32-
}
33-
34-
public void maleSelected() {
35-
setSelected(0);
36-
}
37-
38-
public void femaleSelected() {
39-
setSelected(1);
4027
}
4128

4229
}

0 commit comments

Comments
 (0)