赞
踩
工具类封装
举个栗子:百度定位
下面的代码是从百度定位SDK中复制来组成的工具类
public class LocationTool { private Context context; public LocationClient mLocationClient = null; private mLocationListener myListener = new mLocationListener(); public LocationTool(Context context){ this.context = context; Init(); } public void Init(){ mLocationClient = new LocationClient(context); //声明LocationClient类 mLocationClient.registerLocationListener(myListener); //注册监听函数 LocationClientOption option = new LocationClientOption(); option.setIsNeedAddress(true); //可选,是否需要地址信息,默认为不需要,即参数为false //如果开发者需要获得当前点的地址信息,此处必须为true //option.setCoorType("gcj02"); mLocationClient.setLocOption(option); //mLocationClient为第二步初始化过的LocationClient对象 //需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用 //更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明 } public class mLocationListener extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation address) { //todo } } }
需要在 mLocationListener 中获取数据,但这样的结构是没办法获取数据的
可以在 mLocationListener 中添加回调接口,进行操作
public class LocationTool { ...... ...... ...... /** * 新增一个自定义接口并new出来 */ public AddressListener addressListener; public interface AddressListener{ void address(BDLocation position); //确定处理的值 } //设置getter和setter public AddressListener getAddressListener(){ return addressNoListener; } public void setAddressListener(AddressListener addressListener) { mLocationClient.start(); this.addressListener = addressListener; } //在mLocationListener 调用这个接口 public class mLocationListener extends BDAbstractLocationListener { @Override public void onReceiveLocation(BDLocation address) { //todo addressListener.address(address); } } }
调用这个工具类
public class HomePageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home_page); LocationTool tool = new LocationTool(getApplicationContext()); tool.setAddressListener(new LocationTool.AddressListener() { @Override public void address(BDLocation position) { //在这里获取数据 lat = position.getLatitude(); lng = position.getLongitude(); } }); } }
带数据返回的接口回调大概就这样了
想要执行其他操作也是类似的原理
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。