参照github上JDAddressSelector
allprojects {
repositories {
...
maven { url "https://jitpack.io"}
}
}
模块的 build.gradle 中:
dependencies {
...
compile 'com.github.chihane:JDAddressSelector:1.1.4'
}
在activity中先实现OnAddressSelectedListener接口:
有两种:
1.本身是fragment
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.frameLayout);
AddressSelector selector = new AddressSelector(this);
selector.setOnAddressSelectedListener(this);
// selector.setAddressProvider(new TestAddressProvider());
assert frameLayout != null;
frameLayout.addView(selector.getView());
@Override
public void onAddressSelected(Province province, City city, County county, Street street) {
String s =
(province == null ? "" : province.name) +
(city == null ? "" : "\n" + city.name) +
(county == null ? "" : "\n" + county.name) +
(street == null ? "" : "\n" + street.name);
吐司s即可
}
//第二种:放在dialog中:
Button buttonBottomDialog = (Button) findViewById(R.id.buttonBottomDialog);
assert buttonBottomDialog != null;
buttonBottomDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// BottomDialog.show(MainActivity.this, MainActivity.this);
BottomDialog dialog = new BottomDialog(MainActivity.this);
dialog.setOnAddressSelectedListener(MainActivity.this);
dialog.show();
}
});
@Override
public void onAddressSelected(Province province, City city, County county, Street street) {
String s =
(province == null ? "" : province.name) +
(city == null ? "" : "\n" + city.name) +
(county == null ? "" : "\n" + county.name) +
(street == null ? "" : "\n" + street.name);
吐司s即可
}
//如果需要TestAddressProvider类
public class TestAddressProvider implements AddressProvider {
@Override
public void provideProvinces(AddressReceiver<Province> addressReceiver) {
Province province = new Province();
province.id = 1;
province.name = "测试用省份";
addressReceiver.send(Collections.singletonList(province));
}
@Override
public void provideCitiesWith(int provinceId, AddressReceiver<City> addressReceiver) {
City city = new City();
city.province_id = provinceId;
city.id = 2;
city.name = "测试用城市";
addressReceiver.send(Collections.singletonList(city));
}
@Override
public void provideCountiesWith(int cityId, AddressReceiver<County> addressReceiver) {
County county = new County();
county.city_id = cityId;
county.id = 3;
county.name = "测试用乡镇";
addressReceiver.send(Collections.singletonList(county));
}
@Override
public void provideStreetsWith(int countyId, AddressReceiver<Street> addressReceiver) {
Street street = new Street();
street.county_id = countyId;
street.id = 4;
street.name = "测试用街道";
addressReceiver.send(Collections.singletonList(street));
}
}
布局中:
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="500dp"
android:layout_alignParentBottom="true" />
<Button
android:id="@+id/buttonBottomDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BottomDialog" />
京东地址选择器
最新推荐文章于 2024-05-19 09:48:22 发布