From cd88a31ebfafd07fbaa5269cdb35c7773e2a8460 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 31 三月 2017 18:45:20 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/CountrySelectionDialog.java |   96 +++++++++++++++++++++--------------------------
 1 files changed, 43 insertions(+), 53 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 5e4515b..25835dc 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;
@@ -18,14 +17,14 @@
 
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
-import com.lidroid.xutils.view.annotation.event.OnItemSelected;
+import com.lidroid.xutils.view.annotation.event.OnClick;
 import com.wx.wheelview.widget.WheelView;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-public class CountrySelectionDialog extends PopupWindow implements View.OnClickListener, WheelView.OnWheelItemSelectedListener {
+public class CountrySelectionDialog extends PopupWindow implements WheelView.OnWheelItemSelectedListener {
 
     @ViewInject(R.id.dialog_country_ok)
     private TextView dialog_country_ok;
@@ -36,47 +35,56 @@
     @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 HashMap<String, List<String>> countriesGroupByFirstLetter;
+    private List<String> uniqueFirstLetterList;
+    private List<String> countriesWithSameFirstLetter;
 
-    @OnItemSelected(R.id.dialog_country_name)
-    public void dialog_country_name_click(View view) {
-        System.out.println("");
+    @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) {
+                countriesWithSameFirstLetter = countriesGroupByFirstLetter.get(uniqueFirstLetterList.get(dialog_country_name_first_letter.getCurrentPosition()));
+                okButtonClickedListener.onItemSelected(0, null, countriesWithSameFirstLetter.get(dialog_country_name.getCurrentPosition()));
+            }
+        }
+        dismiss();
     }
 
-    public CountrySelectionDialog(Context context, String[] countryWordData, List<String> countryWordList, HashMap<String, List<String>> countryData) {
-        this.mContext = context;
+    @OnClick(R.id.dialog_country_cancel)
+    public void dialog_country_cancel_click(View view) {
+        dismiss();
+    }
+
+    public CountrySelectionDialog(Context context, List<String> uniqueFirstLetterList, HashMap<String, List<String>> countriesGroupByFirstLetter) {
         view = LayoutInflater.from(context).inflate(R.layout.dialog_country, null);
         ViewUtils.inject(this, view);
 
-        dialog_country_cancel = (TextView) view.findViewById(R.id.dialog_country_cancel);
-        dialog_country_ok = (TextView) view.findViewById(R.id.dialog_country_ok);
-        dialog_country_cancel.setOnClickListener(this);
-        dialog_country_ok.setOnClickListener(this);
-        this.countryWordList = countryWordList;
-        this.countryData = countryData;
-        countryList = countryData.get(countryWordList.get(dialog_country_name_first_letter.getSelection()));
+        this.uniqueFirstLetterList = uniqueFirstLetterList;
+        this.countriesGroupByFirstLetter = countriesGroupByFirstLetter;
+        this.countriesWithSameFirstLetter = countriesGroupByFirstLetter.get(uniqueFirstLetterList.get(dialog_country_name_first_letter.getSelection()));
+
+        WheelView.WheelViewStyle wheelViewStyle = new WheelView.WheelViewStyle();
+        wheelViewStyle.selectedTextColor = Color.parseColor("#11c3e3");
+        wheelViewStyle.textColor = Color.parseColor("#bcc6cf");
+        wheelViewStyle.selectedTextSize = 22;
+        wheelViewStyle.textSize = 16;
+        wheelViewStyle.holoBorderColor = Color.parseColor("#11c3e3");
+
         dialog_country_name_first_letter.setWheelAdapter(new MyWheelAdapter(context));
         dialog_country_name_first_letter.setSkin(WheelView.Skin.Holo);
         dialog_country_name_first_letter.setWheelSize(5);
         dialog_country_name_first_letter.setBackgroundResource(R.color.colorBackground);
+        dialog_country_name_first_letter.setStyle(wheelViewStyle);
+
         dialog_country_name.setWheelAdapter(new MyWheelAdapter(context));
         dialog_country_name.setSkin(WheelView.Skin.Holo);
         dialog_country_name.setWheelSize(5);
         dialog_country_name.setBackgroundResource(R.color.colorBackground);
-        WheelView.WheelViewStyle style = new WheelView.WheelViewStyle();
-        style.selectedTextColor = Color.parseColor("#11c3e3");
-        style.textColor = Color.parseColor("#bcc6cf");
-        style.selectedTextSize = 22;
-        style.textSize = 16;
-        style.holoBorderColor = Color.parseColor("#11c3e3");
-        dialog_country_name_first_letter.setStyle(style);
-        dialog_country_name.setStyle(style);
+        dialog_country_name.setStyle(wheelViewStyle);
+
         initData();
-        setOutsideTouchable(true);
+
         view.setOnTouchListener(new View.OnTouchListener() {
             @Override
             public boolean onTouch(View view, MotionEvent motionEvent) {
@@ -100,43 +108,25 @@
             }
         });
 
+        this.setOutsideTouchable(true);
+        this.setFocusable(true);
         this.setContentView(this.view);
         this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT);
         this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT);
-        this.setFocusable(true);
-        ColorDrawable colorDrawable = new ColorDrawable(0x7f000000);
-        this.setBackgroundDrawable(colorDrawable);
+        this.setBackgroundDrawable(new ColorDrawable(0x7f000000));
         this.setAnimationStyle(R.style.PopupAnimation);
     }
 
     @Override
-    public void onClick(View view) {
-        if (view instanceof AppCompatTextView) {
-            if (((AppCompatTextView) view).getText().equals("纭")) {
-                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()));
-                    }
-                }
-                dismiss();
-            }
-            if (((AppCompatTextView) view).getText().equals("鍙栨秷")) {
-                dismiss();
-            }
-        }
-    }
-
-    @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