0

Я разрабатываю приложение для навигации (из и в мой университет) на платформе Android. На моей карте Google у меня есть 2 места для автозаполнения (называемые «От» и «Кому») и запрос на поезд. Как только приложение узнает текущее местоположение пользователя, оно должно установить одно из мест для автозаполнения фрагментов в местоположении университета и отключить любое изменение/редактирование этого фрагмента (т. Е. Если местоположение пользователя находится в университете, оно установит «От», Таким образом, отключить функциональность этого фрагмента, потому что я не хочу, чтобы пользователь выбирал, чтобы его забирали откуда-то, кроме университета).Как управлять (включать/отключать) Функциональность редактирования фрагментов автозаполнения Google Place

Аналогичным образом, если их местоположение НЕ было в университете, это означает, что им нужна поездка в университет. Итак, второй фрагмент, фрагмент «To» должен быть привязан к местоположению университета. Следовательно, он должен быть отключен, чтобы пользователь не мог запросить поездку в другое место, кроме университета.

Мой вопрос: как я могу отключить/включить фрагмент автозаполнения места?

Я надеюсь, что это ясно, чего я пытаюсь достичь. Я был бы очень признателен за любую помощь или идеи о том, как я должен подходить к этому.

Следующая функция вызывается из onConnected(), а также onLocationChanged():

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)); 
} 

Внутри если заявление, когда текст фрагмента установлен, я хотел бы, чтобы отключить поиск. Как я могу это сделать?

ответ

0

Что вы можете сделать, это получить объект AppCompatEditText, содержащийся в пределах PlaceAutocompleteFragment, и позвонить по телефону AppCompatEditText.setEnabled(false), чтобы отключить его.

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

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

originEditText.setEnabled(false); 

 Смежные вопросы

  • Нет связанных вопросов^_^