CountryDialog.java 3.42 KB
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<CountyInfo.CountiesBean> 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<CountyInfo.CountiesBean>)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();

    }
}