2017-07-02 4 views
0

Je viens de copier ce code de quelque part mis quand j'ai essayé de l'exécuter dit que la méthode ne remplace pas la méthode de sa super classe. Je suis un débutant à l'héritage de Java. S'il vous plaît, aidez-moi à comprendre cela. Comment puis-je resoudre ceci? Cette erreur est affichée pour les deux dernières méthodes @override.La méthode ne remplace pas la méthode de sa super classe

public class MapViewFragment extends Fragment implements OnMapReadyCallback { 


     private Button btnFindPath; 
     private EditText etOrigin; 
     private EditText etDestination; 
     private ProgressDialog progressDialog; 

     private List<Marker> originMarkers = new ArrayList<>(); 
     private List<Marker> destinationMarkers = new ArrayList<>(); 
     private List<Polyline> polylinePaths = new ArrayList<>(); 


     GoogleMap mGoogleMap; 
     MapView mMapView; 
     View mView; 




     public MapViewFragment() { 
      // Required empty public constructor 
     } 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      // Inflate the layout for this fragment 
      mView = inflater.inflate(R.layout.fragment_map_view, container, false); 

      btnFindPath = (Button) getView().findViewById(R.id.btnFindPath); 
      etOrigin = (EditText) getView().findViewById(R.id.etOrigin); 
      etDestination = (EditText) getView().findViewById(R.id.etDestination); 

      btnFindPath.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        sendRequest(); 
       } 
      }); 

      return mView; 
     } 

     private void sendRequest() { 
      String origin = etOrigin.getText().toString(); 
      String destination = etDestination.getText().toString(); 
      if (origin.isEmpty()) { 
       Toast.makeText(getActivity(), "Please enter origin address!", Toast.LENGTH_SHORT).show(); 
       return; 
      } 
      if (destination.isEmpty()) { 
       Toast.makeText(getActivity(), "Please enter destination address!", Toast.LENGTH_SHORT).show(); 
       return; 
      } 

      try { 
       new DirectionFinder(getActivity(), origin, destination).execute(); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 
     } 



     @Override 
     public void onViewCreated(View view, Bundle savedInstanceState) { 
      super.onViewCreated(view, savedInstanceState); 

      mMapView = (MapView) mView.findViewById(R.id.map); 
      if (mMapView != null){ 
       mMapView.onCreate(null); 
       mMapView.onResume(); 
       mMapView.getMapAsync(this); 

      } 
     } 

     @Override 
     public void onMapReady(GoogleMap googleMap) { 
      MapsInitializer.initialize(this.getActivity()); 
      mGoogleMap = googleMap; 
      googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
      googleMap.addMarker(new MarkerOptions().position(new LatLng(27.717245, 85.323960)).title("Yo ho Kathmandu University") .snippet("I study Here")); 
      CameraPosition Liberty = CameraPosition.builder().target(new LatLng(27.717245, 85.323960)).zoom(16).bearing(0).tilt(45).build(); 
      googleMap.moveCamera(CameraUpdateFactory.newCameraPosition(Liberty)); 

      googleMap.setMyLocationEnabled(true); 


     } 


     @Override 
     public void onDirectionFinderStart() { 
      progressDialog = ProgressDialog.show(getActivity(), "Please wait.", 
        "Finding direction..!", true); 

      if (originMarkers != null) { 
       for (Marker marker : originMarkers) { 
        marker.remove(); 
       } 
      } 

      if (destinationMarkers != null) { 
       for (Marker marker : destinationMarkers) { 
        marker.remove(); 
       } 
      } 

      if (polylinePaths != null) { 
       for (Polyline polyline:polylinePaths) { 
        polyline.remove(); 
       } 
      } 
     } 

     @Override 
     public void onDirectionFinderSuccess(List<Route> routes) { 
      progressDialog.dismiss(); 
      polylinePaths = new ArrayList<>(); 
      originMarkers = new ArrayList<>(); 
      destinationMarkers = new ArrayList<>(); 

      for (Route route : routes) { 
       mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(route.startLocation, 16)); 
       ((TextView) getView().findViewById(R.id.tvDuration)).setText(route.duration.text); 
       ((TextView) getView().findViewById(R.id.tvDistance)).setText(route.distance.text); 

       originMarkers.add(mGoogleMap.addMarker(new MarkerOptions() 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_media_pause)) 
         .title(route.startAddress) 
         .position(route.startLocation))); 
       destinationMarkers.add(mGoogleMap.addMarker(new MarkerOptions() 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_media_play)) 
         .title(route.endAddress) 
         .position(route.endLocation))); 

       PolylineOptions polylineOptions = new PolylineOptions(). 
         geodesic(true). 
         color(Color.BLUE). 
         width(10); 

       for (int i = 0; i < route.points.size(); i++) 
        polylineOptions.add(route.points.get(i)); 

       polylinePaths.add(mGoogleMap.addPolyline(polylineOptions)); 
      } 
     } 
    } 
+0

les importations de contrôle dans le fichier. chnage app.fragment pour importer android.support.v4.app.Fragment; –

Répondre

0

Il vous manque interface "DirectionFinderListener":

public class MapViewFragment extends Fragment implements OnMapReadyCallback, DirectionFinderListener 

Ne pas oublier d'ajouter toutes les classes de l'échantillon Google direction de la carte app: https://github.com/hiepxuan2008/GoogleMapDirectionSimple/tree/master/app/src/main/java/Modules

+0

J'ai déjà ajouté toutes les autres classes. Merci beaucoup . –

+0

Comment puis-je utiliser la saisie semi-automatique au lieu de modifier le texte dans cet exemple? –