ANDROID 开发日志(2012-01-04)

前面遗留的问题,进行了修复;

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中,比较方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值