现在使用比较多的类似美团等APP的城市选择界面.
2步即可实现,就是这么简单粗暴!
下载demo.apk体验.
目前没上传,只能 下载library手动导入.
创建Activity引入CityPickerFragment;
cityPickerFragment = new CityPickerFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.fl_activity_city_picker_container, cityPickerFragment).commit();
定位更新当前位置状态
cityPickerFragment.updateLocateState(LocateState.SUCCESS, location.replaceAll("市", ""));
/**
* 引用例子
*/
public class DemoActivity extends AppCompatActivity {
Toolbar toolbar;
FrameLayout flCityPickerContainer;
private CityPickerFragment cityPickerFragment;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_city_picker);
initView();
}
protected void initView() {
//这里
cityPickerFragment = new CityPickerFragment();
getSupportFragmentManager().beginTransaction()
.add(R.id.fl_activity_city_picker_container, cityPickerFragment).commit();
//定位
LocationManager.startSingleLocation(new IMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation.getErrorCode() == 0) {
String city = aMapLocation.getCity();
String district = aMapLocation.getDistrict();
String location = StringUtils.extractLocation(city, district);
//定位成功,更新状态
cityPickerFragment.updateLocateState(LocateState.SUCCESS, location.replaceAll("市", ""));
} else {
cityPickerFragment.updateLocateState(LocateState.FAILED, null);
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
//销毁定位
LocationManager.stopSingleLocation();
}
}