マップと新しい緯度を移動するたびにonLocationChangedブロックに入り、longもフェッチされますが、アドレスは更新されませんが、最初にロードされたアドレスが表示されます。住所を更新するには次の方法を使用してください:ジオコーダーは緯度と経度を変更しながらアドレスを更新することはできません
@Override
public void onLocationChanged(Location location) {
Log.e("change" , "change");
double latitude = location.getLatitude();
double longitude = location.getLongitude();
try {
Geocoder geo = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geo.getFromLocation(latitude, longitude, 1);
if (addresses.isEmpty()) {
Log.e("TAG", "Waiting for Location");
}
else {
if (addresses.size() > 0) {
Log.e("TAG", addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() + ", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName());
//yourtextfieldname.setText(addresses.get(0).getFeatureName() + ", " + addresses.get(0).getLocality() +", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryName());
//Toast.makeText(getApplicationContext(), "Address:- " + addresses.get(0).getFeatureName() + addresses.get(0).getAdminArea() + addresses.get(0).getLocality(), Toast.LENGTH_LONG).show();
}
}
}
catch (Exception e) {
e.printStackTrace(); // getFromLocation() may sometimes fail
}
}
問題の原因は何ですか?
textviewのテキストを更新する行はコメントしました。 – Shubhank
私はまだそこ – bhaskar
をログを持っていて、logcatでログを見ていますか? – Shubhank