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