ANDROID 开发日志(2012-01-04)
16lz
2021-01-26
前面遗留的问题,进行了修复;
1.底部按钮变色问题一直未能完美的解决,前面一直采用的RadioGroup中嵌套RadioButton的形式,
给RadioGroup添加的ChangedListern事件,但是在RadioGroup中包含着一个RelativeLayout,在RelativeLayout中
包含这一个RadioButton,这样的话,隔着一个层,没法直接使用RadioGroup的事件控制checked=true,所以后面改进成了
给每个RadioButton都添加了OnClick事件。在onClick事件设置设置其他Checked=false。达到预计效果。
2.GPS 获得当前位置的经纬度问题
GPS 获取经纬度问题,在android中常用的有两种提供者,gps和network,android提供的API接口文档中只有一个方法是
locationManager.getLastKnownLocation(provider)接口,要想获得当前位置的经纬度,需要给locationManager 注册一个
LocationListener 监听器,在位置更变的时候,更变经纬度。
调用方式是:locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener_netWork);locationListener_netWork 是一个写好了监听器:locationListener_netWork = new LocationListener() {public void onLocationChanged(Location location) { // 当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发if (location != null) {LatitudeHolder.location = location;latitude = location.getLatitude();longitude = location.getLongitude();updateLocationMapView(context, latitude, longitude);}}public void onProviderDisabled(String provider) {// Provider被disable时触发此函数,比如GPS被关闭locationManager.removeUpdates(locationListener_netWork);locationManager.setTestProviderEnabled(provider, false);}public void onProviderEnabled(String provider) {// Provider被enable时触发此函数,比如GPS被打开locationManager.setTestProviderEnabled(provider, true);}public void onStatusChanged(String provider, int status, Bundle extras) {// Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数}};如果要想在没有gsp的时候切换到network上去,就需要给两个提供者都注册监听器。按照源码中的要求,必须要将requestLocationUpdates 方法包含到一个Looper去,建议直接
写在Activity中,比较方便。
更多相关文章
- 让你的代码减少三倍!使用kotlin开发Android(五) 监听器
- 【Android】 onClick与onTouch并存触发的问题
- android和ios GoogleMap画导航线路图 路径规划(Directions)
- Android(安卓)使用RecyclerView实现轮播图
- Android:GPS卫星定位
- Android的ListView简单使用的实例(附Demo)
- Android(安卓)使用SeekBar时动态显示进度且随SeekBar一起移动
- Android消息处理
- Android(安卓)简单通用的基类