2011-08-04 7 views
3

私はGoogleマップを使用していますが、トーストが機能しません。誰でも私のコードで間違ったことを知らせてくれますか?トーストが動作しない

public class GPSLocatorActivity extends MapActivity { 
    Context mContext = this; 

今、毎回あなたはトーストの使用を作りたい:事前に

おかげ

import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import com.google.android.maps.MapController; 
import com.google.android.maps.GeoPoint; 
import android.content.Context; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 

import android.location.Geocoder; 
import android.location.Address; 

import com.google.android.maps.Overlay; 
import android.graphics.Canvas; 
import android.graphics.Point; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 

import java.util.List; 
import java.util.Locale; 
import java.io.IOException; 

import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.Toast; 

public class GPSLocatorActivity extends MapActivity { 
    private MapView mapView; 
    private MapController mapController; 

    private LocationManager locationManager; 
    private LocationListener locationListener; 

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

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  

     locationListener = new GPSLocationListener(); 

     locationManager.requestLocationUpdates(
      LocationManager.GPS_PROVIDER, 
      0, 
      0, 
      locationListener); 

     mapView = (MapView) findViewById(R.id.mapView); 


     // enable Street view by default 
     // mapView.setStreetView(true); 

     // enable to show Satellite view 
     mapView.setSatellite(true); 

     // enable to show Traffic on map 
     // mapView.setTraffic(true); 
     mapView.setBuiltInZoomControls(true); 

     mapController = mapView.getController(); 
     mapController.setZoom(17); 
     mapView.invalidate(); 

    } 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

    private class GPSLocationListener implements LocationListener 
    { 
     @Override 
     public void onLocationChanged(Location location) { 
      if (location != null) { 
       GeoPoint point = new GeoPoint(
         (int) (location.getLatitude() * 1E6), 
         (int) (location.getLongitude() * 1E6)); 
       /* 
       //Toast.makeText(getBaseContext(), 
         Toast.makeText(GPSLocatorActivity.this, 
         "Latitude: " + location.getLatitude() + 
         " Longitude: " + location.getLongitude(), 
         Toast.LENGTH_LONG).show(); 
         */ 
       //mapController.setZoom(17);    
       mapController.animateTo(point); 
       mapController.setZoom(17); 

      // add marker 
       MapOverlay mapOverlay = new MapOverlay(); 
       mapOverlay.setPointToDraw(point); 
       List<Overlay> listOfOverlays = mapView.getOverlays(); 
       listOfOverlays.clear(); 
       listOfOverlays.add(mapOverlay); 

       String address = ConvertPointToLocation(point); 
       Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show(); 

       mapView.invalidate(); 
      } 
     } 

     public String ConvertPointToLocation(GeoPoint point) { 
      String address = ""; 
      Geocoder geoCoder = new Geocoder(
        getBaseContext(), Locale.getDefault()); 
      try { 
       List<Address> addresses = geoCoder.getFromLocation(
        point.getLatitudeE6()/1E6, 
        point.getLongitudeE6()/1E6, 1); 

       if (addresses.size() > 0) { 
        for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++) 
         address += addresses.get(0).getAddressLine(index) + " "; 
       } 
      } 
      catch (IOException e) {     
       e.printStackTrace(); 
      } 

      return address; 
     } 

     @Override 
     public void onProviderDisabled(String provider) { 
     } 

     @Override 
     public void onProviderEnabled(String provider) { 
     } 

     @Override 
     public void onStatusChanged(String provider, int status, Bundle extras) { 
     } 
    } 

    class MapOverlay extends Overlay 
    { 
     private GeoPoint pointToDraw; 

     public void setPointToDraw(GeoPoint point) { 
      pointToDraw = point; 
     } 

     public GeoPoint getPointToDraw() { 
      return pointToDraw; 
     } 


     @Override 
     public boolean onTouchEvent(MotionEvent e, MapView mapView) { 
      // TODO Auto-generated method stub 
     return super.onTouchEvent(e, mapView); 
      //mapView.invalidate(); 
      //return false; 

     } 

     @Override 
     public boolean onTap(GeoPoint p, MapView mapView) { 
      // TODO Auto-generated method stub 
      //mapView.invalidate(); 
      return super.onTap(p, mapView); 
     } 

     @Override 
     public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { 
      super.draw(canvas, mapView, shadow);     

      // convert point to pixels 
      Point screenPts = new Point(); 
      mapView.getProjection().toPixels(pointToDraw, screenPts); 

      // add marker 
      Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.red); 
      canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); // 24 is the height of image   
      return true; 
     } 

    } 
} 
+0

トーストですか?コメントされているかコメントされていない?エラーは何ですか? – trgraglia

+0

この質問は明確ではありません。これらのトーストのどれがうまくいかないかを明記してください。コントロールがToastを作成するコードに到達しているかどうかを確認するためにデバッグを試みましたか? – rineez

答えて

2
Toast.makeText(GPSLocatorActivity.this, 
         "Latitude: " + location.getLatitude() + 
         " Longitude: " + location.getLongitude(), 
         Toast.LENGTH_LONG).show(); 

3

が最初にこれを追加...これを試してみてください

Toast.makeText(mContext, "some_string", Toast.LENGTH_LONG).show(); 
4
Toast toast=Toast.makeText(                        
       GPSLocatorActivity.this, 
       "Latitude: " + location.getLatitude() + 
       " Longitude: " + location.getLongitude(), 
       Toast.LENGTH_LONG); 
toast.show(); 
0
runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     Toast.makeText(context, "msg", Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

通常、コードの周りにもっと多くのコンテキストを含めることをお勧めします。 – EJoshuaS