From 13837feb8b9fde43ed481200fca0db2a8b8cb698 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期六, 01 四月 2017 10:05:20 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java |   34 ++++++++++++++++++----------------
 1 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java
index fb45839..50ce1e8 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java
@@ -3,7 +3,6 @@
 import android.content.Context;
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
-import android.support.v7.widget.AppCompatTextView;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
@@ -36,18 +35,22 @@
     @ViewInject(R.id.dialog_country_name)
     private WheelView dialog_country_name;
 
-    private Context mContext;
     private View view;
-    private HashMap<String, List<String>> countryData;
-    private List<String> countryWordList;
-    private List<String> countryList;
+    private static HashMap<String, List<String>> countriesGroupByFirstLetter = new HashMap<>();
+    private static List<String> uniqueFirstLetterList = new ArrayList<>();
+    private List<String> countriesWithSameFirstLetter = new ArrayList<>();
+
+    public static void setCountries(List<String> _uniqueFirstLetterList, HashMap<String, List<String>> _countriesGroupByFirstLetter) {
+        uniqueFirstLetterList = _uniqueFirstLetterList;
+        countriesGroupByFirstLetter = _countriesGroupByFirstLetter;
+    }
 
     @OnClick(R.id.dialog_country_ok)
     public void dialog_country_ok_click(View view) {
         for (OkButtonClickedListener okButtonClickedListener : okButtonClickedListeners) {
             if (dialog_country_name_first_letter.getCurrentPosition() >= 0) {
-                countryList = countryData.get(countryWordList.get(dialog_country_name_first_letter.getCurrentPosition()));
-                okButtonClickedListener.onItemSelected(0, null, countryList.get(dialog_country_name.getCurrentPosition()));
+                countriesWithSameFirstLetter = countriesGroupByFirstLetter.get(uniqueFirstLetterList.get(dialog_country_name_first_letter.getCurrentPosition()));
+                okButtonClickedListener.onItemSelected(0, null, countriesWithSameFirstLetter.get(dialog_country_name.getCurrentPosition()));
             }
         }
         dismiss();
@@ -58,14 +61,11 @@
         dismiss();
     }
 
-    public CountrySelectionDialog(Context context, String[] countryWordData, List<String> countryWordList, HashMap<String, List<String>> countryData) {
-        this.mContext = context;
+    public CountrySelectionDialog(Context context, OkButtonClickedListener okButtonClickedListener) {
         view = LayoutInflater.from(context).inflate(R.layout.dialog_country, null);
         ViewUtils.inject(this, view);
 
-        this.countryWordList = countryWordList;
-        this.countryData = countryData;
-        this.countryList = countryData.get(countryWordList.get(dialog_country_name_first_letter.getSelection()));
+        this.countriesWithSameFirstLetter = countriesGroupByFirstLetter.get(uniqueFirstLetterList.get(dialog_country_name_first_letter.getSelection()));
 
         WheelView.WheelViewStyle wheelViewStyle = new WheelView.WheelViewStyle();
         wheelViewStyle.selectedTextColor = Color.parseColor("#11c3e3");
@@ -118,18 +118,20 @@
         this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
         this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
         this.setAnimationStyle(R.style.PopupAnimation);
+
+        okButtonClickedListeners.add(okButtonClickedListener);
     }
 
     @Override
     public void onItemSelected(int position, Object o) {
-        countryList = countryData.get(countryWordList.get(dialog_country_name_first_letter.getCurrentPosition()));
+        countriesWithSameFirstLetter = countriesGroupByFirstLetter.get(uniqueFirstLetterList.get(dialog_country_name_first_letter.getCurrentPosition()));
     }
 
     private void initData() {
-        dialog_country_name_first_letter.setWheelData(countryWordList);
+        dialog_country_name_first_letter.setWheelData(uniqueFirstLetterList);
         dialog_country_name_first_letter.join(dialog_country_name);
-        dialog_country_name_first_letter.joinDatas(countryData);
-        dialog_country_name.setWheelData(countryList);
+        dialog_country_name_first_letter.joinDatas(countriesGroupByFirstLetter);
+        dialog_country_name.setWheelData(countriesWithSameFirstLetter);
     }
 
     private List<OkButtonClickedListener> okButtonClickedListeners = new ArrayList<OkButtonClickedListener>();

--
Gitblit v1.8.0