package com.hjx.personalcenter.customdialog; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import com.hjx.personalcenter.R; import com.hjx.personalcenter.adapter.CitysAdapter; import com.hjx.personalcenter.adapter.CountryAdapter; import com.hjx.personalcenter.db.SaveParam; import com.hjx.personalcenter.http.HttpCode; import com.hjx.personalcenter.http.HttpManager; import com.hjx.personalcenter.interfaces.DialogCallBack; import com.hjx.personalcenter.model.CityInfo; import com.hjx.personalcenter.model.CountyInfo; import com.mylhyl.circledialog.BaseCircleDialog; import com.mylhyl.circledialog.res.values.CircleDimen; import java.util.ArrayList; import java.util.List; /** * Created by wei on 2017/8/21. */ public class CountryDialog extends BaseCircleDialog implements AdapterView.OnItemClickListener { private CountryAdapter listadapter; private ListView listView; private DialogCallBack.CallBack mCallBack; private ArrayList data = new ArrayList<>(); public CountryDialog(DialogCallBack.CallBack callBack) { this.mCallBack = callBack; } public static CountryDialog getInstance(DialogCallBack.CallBack callBack) { CountryDialog dialogFragment = new CountryDialog(callBack); dialogFragment.setCanceledBack(true); dialogFragment.setCanceledOnTouchOutside(true); dialogFragment.setRadius(CircleDimen.RADIUS); dialogFragment.setWidth(0.5f); dialogFragment.setGravity(Gravity.CENTER); dialogFragment.setBackgroundColor(Color.WHITE); return dialogFragment; } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what){ case HttpCode.COUNTRY: data.clear(); data.addAll( (List)msg.obj); listadapter.notifyDataSetChanged(); break; } } }; @Override public View createView(Context context, LayoutInflater inflater, ViewGroup container) { return inflater.inflate(R.layout.custom_adilog_provicelist, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); listView = (ListView) getView().findViewById(R.id.listadapter); String citys = SaveParam.getInstance().getLoginParam(getActivity(), SaveParam.CITYS); listadapter = new CountryAdapter(data,getActivity()); listView.setAdapter(listadapter); listView.setOnItemClickListener(this); try { int a = Integer.parseInt(citys); HttpManager.getInstance().countyinfo(getActivity(),a,handler); } catch (NumberFormatException e) { e.printStackTrace(); } } @Override public void onItemClick(AdapterView parent, View view, int position, long id) { SaveParam.getInstance().saveLoginParam(getActivity(), SaveParam.CITYS, ""+data.get(position).getRegionId()); mCallBack.provinceOnItemClick(parent,view,position,id,3); dismiss(); } }