0

Ich entwickle eine Mitfahr-App (von und zu meiner Universität) auf der Android-Plattform. In meiner Google-Map habe ich 2 Place-Autocomplete-Fragmente (genannt "From" und "To") und eine Fahrt Anfrage Knopf. Sobald die App den aktuellen Standort des Benutzers kennt, sollte sie einen der Place-Autocomplete-Fragmente an den Standort der Universität setzen und alle Änderungen an diesem Fragment deaktivieren (dh wenn der Standort des Benutzers an der Universität ist, wird das "Von" Autocomplete-Fragment an den Standort der Universität, wodurch die Funktionalität dieses Fragments deaktiviert wird, weil ich nicht möchte, dass der Benutzer entscheidet, von einer anderen Stelle als der Universität abgeholt zu werden.So steuern Sie (aktivieren/deaktivieren) Google Place Autocomplete-Fragment Bearbeitungsfunktion

Ebenso, wenn ihre Lage nicht an der Universität war, bedeutet das, dass sie eine Fahrt zur Universität brauchen. Also sollte das zweite Fragment, das "To" -Fragment, am Standort der Universität fixiert sein. Daher sollte es deaktiviert werden, um zu verhindern, dass der Benutzer eine Fahrt zu einem anderen Ort als der Universität anfordert.

Meine Frage ist: Wie kann ich ein Place Autocomplete Fragment deaktivieren/aktivieren?

Ich hoffe, es ist klar, was ich zu erreichen versuche. Ich würde sehr jede Hilfe oder Ideen schätzen, wie ich das angehen sollte.

Die folgende Funktion wird von onConnected() sowie OnLocationChanged() aufgerufen:

private void handleNewLocation(Location location) { 
    Log.i(TAG, location.toString()); 

    //Place current location marker 
    LatLng currentlatLng = new LatLng(location.getLatitude(), location.getLongitude()); 

    Location university = new Location(""); 
    university.setLatitude(-33.8688); 
    university.setLongitude(151.2093); 

    float distanceInMeters = location.distanceTo(university); 
    /* 
     NOTE: this is assuming the user is rider. 
     Compute distance between current location and University, 
     if distance is >= 1000m, then set destination ("To" fragment) to University. 
     Otherwise (distance is < 1000m), set source location ("From" fragment) to University 
    */ 
    if(distanceInMeters >= 1000.0) { 
     toPlaceAutocomplete.setText("University"); 
    } else { 
     fromPlaceAutocomplete.setText("University"); 
    } 

    MarkerOptions markerOptions = new MarkerOptions(); 
    markerOptions.position(currentlatLng); 
    markerOptions.title("I am here!"); 
    markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)); 
    mCurrLocationMarker = mGoogleMap.addMarker(markerOptions); 

    //move map camera 
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(currentlatLng)); 
    mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(11)); 
} 

Innerhalb der if-Anweisung, wenn der Text des Fragments gesetzt ist, würde ich die Suche deaktivieren möchte. Wie kann ich das machen?

Antwort

0

Was Sie tun könnten, ist das AppCompatEditText Objekt innerhalb der PlaceAutocompleteFragment enthalten und AppCompatEditText.setEnabled(false) aufrufen, um es zu deaktivieren.

PlaceAutocompleteFragment originAutocomplete= (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.originAutocomplete); 

AppCompatEditText originEditText = (AppCompatEditText) originAutocomplete.getView().findViewById(R.id.place_autocomplete_search_input); 

originEditText.setEnabled(false); 
Verwandte Themen