我正在處理位置應用。我想創建一個接近警報。爲此我有2個編輯文本,我設置了經度和緯度。設置位置緯度/經度從edittext獲取值
首先,我使用getLastKnownLocation()
從我的位置自動檢索位置合併,並將這些值保存到edittext中。但是,我需要能夠手動設置位置coordenates到edittexts來設置接近警報。
因此,要創建接近警報,我必須從edittext獲取座標,並且這將轉化爲一些值。
但我不知道如何做這個轉換回來。爲了更好地理解這一點,這裏是代碼:
//Get location depending on the better service
mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
String provider = mLocationManager.getBestProvider(mCriteria, true);
Location location = mLocationManager.getLastKnownLocation(provider);
//Make conversion to show Location coordinates in edittexts
private static final NumberFormat nf = new DecimalFormat("##.########");
latitudeEditText.setText(nf.format(mLocation.getLatitude()));
longitudeEditText.setText(nf.format(mLocation.getLongitude()));
這裏是我需要幫助的地方。現在我需要從latitudeEditText
和longitudeEditText
中獲取值,並將它們再次設置爲mLocation
。
我認爲這將以如下方式完成:mLocation.setLatitude("double value")
但我的疑問是如何從edittext的十進制值轉換回double值。
請記住,u需要驗證'的EditText在這之前的價值觀。即「EditText」包含可以轉換爲雙精度的值。 – SMR
這應該使用某種異常來完成?你能舉一個例子嗎?我仍然要學習一些例外 – masmic
好吧,似乎這種解決方案不起作用。這就是我在LogCat上得到的結果:'java.lang.NumberFormatException:無效的雙精度值:「43,449502」' – masmic