Skip to content

Commit e4fc47a

Browse files
committed
fixed event bug
1 parent 29f599e commit e4fc47a

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

android/src/main/java/com/beefe/picker/view/PickerViewAlone.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
/**
1616
* Created by heng on 16/9/6.
17+
*
18+
* Edited by heng on 16/10/09:
19+
* 修复滚动后返回值错误的bug
1720
*/
1821

1922
public class PickerViewAlone extends LinearLayout {
@@ -22,8 +25,6 @@ public class PickerViewAlone extends LinearLayout {
2225

2326
private OnSelectedListener onSelectedListener;
2427

25-
private int position;
26-
2728
public PickerViewAlone(Context context) {
2829
super(context);
2930
init(context);
@@ -43,13 +44,13 @@ public void setOnSelectedListener(OnSelectedListener listener) {
4344
this.onSelectedListener = listener;
4445
}
4546

46-
public void setPickerData(ReadableArray array, final ArrayList<String> curSelectedList){
47-
switch (array.getType(0).name()){
47+
public void setPickerData(ReadableArray array, final ArrayList<String> curSelectedList) {
48+
switch (array.getType(0).name()) {
4849
case "Array":
49-
setMultipleData(array,curSelectedList);
50+
setMultipleData(array, curSelectedList);
5051
break;
5152
default:
52-
setAloneData(array,curSelectedList);
53+
setAloneData(array, curSelectedList);
5354
break;
5455
}
5556
}
@@ -105,17 +106,14 @@ private void setMultipleData(ReadableArray array, final ArrayList<String> curSel
105106
@Override
106107
public void onItemSelected(String item, int index) {
107108
int viewCount = pickerViewAloneLayout.getChildCount();
108-
for (int j = 0; j < viewCount; j++) {
109-
View view = pickerViewAloneLayout.getChildAt(j);
109+
for (int k = 0; k < viewCount; k++) {
110+
View view = pickerViewAloneLayout.getChildAt(k);
110111
if (view instanceof LoopView) {
111112
LoopView loop = (LoopView) view;
112-
if (loop.getTag() == loopView.getTag()) {
113-
position = j;
114-
break;
115-
}
113+
selectedItems[k] = loop.getSelectedItem();
116114
}
117115
}
118-
selectedItems[position] = item;
116+
119117
if (onSelectedListener != null) {
120118
for (int i = 0; i < selectedItems.length; i++) {
121119
curSelectedList.set(i, selectedItems[i]);
@@ -169,7 +167,7 @@ public void setIsLoop(boolean isLoop) {
169167
}
170168
}
171169

172-
public int getViewHeight(){
170+
public int getViewHeight() {
173171
int viewHeight = 0;
174172
View view = pickerViewAloneLayout.getChildAt(0);
175173
if (view instanceof LoopView) {

0 commit comments

Comments
 (0)