2014-01-30 92 views
0

我正在處理位置應用。我想創建一個接近警報。爲此我有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())); 

這裏是我需要幫助的地方。現在我需要從latitudeEditTextlongitudeEditText中獲取值,並將它們再次設置爲mLocation

我認爲這將以如下方式完成:mLocation.setLatitude("double value")但我的疑問是如何從edittext的十進制值轉換回double值。

回答

0

嗯,我終於解決了這個問題。

要設置一個字符串或類似位置的雙重價值座標:

latitudeEditText.setText(mLocation.convert(mLocation.getLatitude(), mLocation.FORMAT_DEGREES)); 
longitudeEditText.setText(mLocation.convert(mLocation.getLongitude(), mLocation.FORMAT_DEGREES)); 

要做到同退:

mLocation.setLatitude(mLocation.convert(latitudeEditText.getText().toString())); 
mLocation.setLongitude(mLocation.convert(longitudeEditText.getText().toString())); 
0

可以使用mLocation.setLatitute(Double.parseDouble(latitudeEditText.getText().toString()));
類似:
mLocation.setLongitude(Double.parseDouble(longitudeEditText.getText().toString()));
我希望它能幫助。

+0

請記住,u需要驗證'的EditText在這之前的價值觀。即「EditText」包含可以轉換爲雙精度的值。 – SMR

+0

這應該使用某種異常來完成?你能舉一個例子嗎?我仍然要學習一些例外 – masmic

+0

好吧,似乎這種解決方案不起作用。這就是我在LogCat上得到的結果:'java.lang.NumberFormatException:無效的雙精度值:「43,449502」' – masmic

相關問題