这是一个工具类别人框架里的
package us.mifeng.zhongxingcheng.utils;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import cn.qqtheme.framework.entity.Province;
import cn.qqtheme.framework.picker.AddressPicker;
import cn.qqtheme.framework.util.ConvertUtils;
/**
* 获取地址数据并显示地址选择器
*
* @author 李玉江[QQ:1032694760]
* @since 2015/12/15
*/
public class AddressPickTask extends AsyncTask<String, Void, ArrayList<Province>> {
private Activity activity;
private ProgressDialog dialog;
private Callback callback;
private String selectedProvince = "", selectedCity = "", selectedCounty = "";
private boolean hideProvince = false;
private boolean hideCounty = false;
public AddressPickTask(Activity activity) {
this.activity = activity;
}
public void setHideProvince(boolean hideProvince) {
this.hideProvince = hideProvince;
}
public void setHideCounty(boolean hideCounty) {
this.hideCounty = hideCounty;
}
public void setCallback(Callback callback) {
this.callback = callback;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(activity, null, "正在初始化数据...", true, true);
}
@Override
protected ArrayList<Province> doInBackground(String... params) {
if (params != null) {
switch (params.length) {
case 1:
selectedProvince = params[0];
break;
case 2:
selectedProvince = params[0];
selectedCity = params[1];
break;
case 3:
selectedProvince = params[0];
selectedCity = params[1];
selectedCounty = params[2];
break;
default:
break;
}
}
ArrayList<Province> data = new ArrayList<>();
try {
String json = ConvertUtils.toString(activity.getAssets().open("city.json"));
data.addAll(JSON.parseArray(json, Province.class));
} catch (Exception e) {
e.printStackTrace();
}
return data;
}
@Override
protected void onPostExecute(ArrayList<Province> result) {
dialog.dismiss();
if (result.size() > 0) {
AddressPicker picker = new AddressPicker(activity, result);
picker.setHideProvince(hideProvince);
picker.setHideCounty(hideCounty);
if (hideCounty) {
picker.setColumnWeight(0.8f, 1.0f);
} else if (hideProvince) {
picker.setColumnWeight(1.0f, 0.8f);
} else {
picker.setColumnWeight(0.8f, 1.0f, 1.0f);
}
picker.setSelectedItem(selectedProvince, selectedCity, selectedCounty);
picker.setOnAddressPickListener(callback);
picker.show();
} else {
callback.onAddressInitFailed();
}
}
public interface Callback extends AddressPicker.OnAddressPickListener {
void onAddressInitFailed();
}
}
在as的gradle中写
compile 'com.alibaba:fastjson:1.1.55.android'
然后就是你的点击事件了
AddressPickTask task = new AddressPickTask(this);
task.setHideProvince(false);
task.setHideCounty(false);
task.setCallback(new AddressPickTask.Callback() {
@Override
public void onAddressInitFailed() {
Toast.makeText(XZSHDZ.this, "数据初始化失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onAddressPicked(Province province, City city, County county) {
if (county == null) {
final String address = province.getAreaName() + city.getAreaName();
diqu_text.setText(address);
} else {
final String address = province.getAreaName() + city.getAreaName() + county.getAreaName();
diqu_text.setText(address);
}
}
});
task.execute("北京市", "北京市", "东城区");//这一行是点击弹出来默认是什么地址
到这里三级联动就完成了