J'ai implémenté PlaceAutocompleteFragment dans l'activité et fonctionne avec succès. Mais comment implémenter le même fragment dans android? J'ai implémenté un fragment placeautocomplete comme celui-ci
PlaceAutocompleteFragment autocompleteFragment1 = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment1);
Erreur que je reçois est
Types incovertibles; impossible de convertir «Android.support.v4.app.Fragment» vers com.google.Android.gms.location.PlaceAutocompleteFragment.
DISPOSITION XML IS
<Android.support.v7.widget.CardView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/button_background"
card_view:cardCornerRadius="4dp"
card_view:contentPadding="0dp">
<fragment
Android:id="@+id/place_autocomplete_fragment"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="Enter Place"
Android:background="#fff"
Android:name="com.google.Android.gms.location.places.ui.PlaceAutocompleteFragment"
/>
</Android.support.v7.widget.CardView>
Merci d'avance
Utilisez getActivity()
comme ceci.
PlaceAutocompleteFragment autocompleteFragment1 = (PlaceAutocompleteFragment)getActivity().getFragmentManager().findFragmentById(R.id.autocomplete_fragment1);
fragment
Android:id="@+id/place_autocomplete_fragment"
Android:name="com.google.Android.gms.location.places.ui.SupportPlaceAutocompleteFragment"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
/>
Changer getChildFragmentManager () au lieu de getFragmentManager () et utilisez SupportPlaceAutocompleteFragment au lieu de PlaceAutocompleteFragment dans votre fichier Java ,.
SupportPlaceAutocompleteFragment autocompleteFragment = (SupportPlaceAutocompleteFragment) getChildFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
Vous devez utiliser les éléments suivants dans votre fichier de présentation XML:
<fragment
Android:id="@+id/place_autocomplete_fragment1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:name="com.google.Android.gms.location.places.ui.PlaceAutocompleteFragment"
/>
Notez le nom de classe complet et l'id, votre identifiant ne correspond pas. (place_autocomplete_fragment1)
L'identifiant du fragment devrait être Android:id="@+id/place_autocomplete_fragment1"
<fragment
Android:id="@+id/place_autocomplete_fragment1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:name="com.google.Android.gms.location.places.ui.PlaceAutocompleteFragment"/>
Une autre raison valable de cette erreur est que vous devez étendre votre classe Fragment
à partir de Android.support.v4.app.Fragment
et la convertir en PlaceAutoCompleteFragment
qui étend Fragment
classe à partir de com.google.Android.gms.location.PlaceAutocompleteFragment
. pouvez utiliser SupportPlaceAutoCompleteFragment
au lieu de vous utilisez.
SupportPlaceAutocompleteFragment autocompleteFragment1 = (SupportPlaceAutocompleteFragment)
getActivity.getSupportFragmentManager().findFragmentById(R.id.place_autocomplete_fragment1);
L'utilisation de ce widget de saisie semi-automatique fonctionnera également sur les périphériques de la version inférieure.