0

こんにちは、現在の場所の住所を取得し、場所がGoogleマップから変更されるとそれらを更新するアプリの作成に取り組んでいます。

現在、正常に動作していますが、更新されません。テキストビューで住所を表示しているのですが、現在地が変わるとGoogleマップの現在地マークが変化するのですが、住所が反映されません。最初の場所の住所のみが表示され、更新されません...

誰かが私が間違っていることを教えてもらえますか? よろしくお願いします。

以下は私のコードです。

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    map = (MapView) findViewById(R.id.map);
    map.setBuiltInZoomControls(true);
    map.setClickable(true);

    map.getController().setZoom(17);

    tv = (TextView) findViewById(R.id.address_label);

    overlay = new MyLocationOverlay(getApplicationContext(), map);
    overlay.onProviderEnabled(LocationManager.GPS_PROVIDER);
    overlay.enableMyLocation();


    overlay.runOnFirstFix(new Runnable() {
        public void run() {

            GeoPoint g = overlay.getMyLocation();
            map.getController().animateTo(g);
            map.getController().setCenter(g);

            Geocoder geoCoder = new Geocoder(getBaseContext(), Locale
                    .getDefault());
            boolean chk1 = isNetworkAvailable();
            if (chk1 == true) {

                try {
                    List<Address> addresses = geoCoder.getFromLocation(
                            g.getLatitudeE6() / 1E6,
                            g.getLongitudeE6() / 1E6, 1);
                    add="";
                    if (addresses.size() > 0) {
                        for (int i = 0; i < addresses.get(0)
                                .getMaxAddressLineIndex(); i++)
                            add += addresses.get(0).getAddressLine(i) + ", ";
                    }


                } catch (Exception e) {
                    e.printStackTrace();
                }
                ui_handler.post(new Runnable() {
                    public void run() {
                        tv.setText(add);
                    }
                });
            } else {
                ui_handler.post(new Runnable() {
                    public void run() {
                        tv.setText("Connection not found.");

                    }
                });
            }

        }
    });

    map.getOverlays().add(overlay);
    map.invalidate();

}
4

0 に答える 0