I have implemented PlaceAutocompleteFragment in activity and is working successfuly. But how to implement the same in fragment in android? I have implemented placeautocomplete fragment like this
PlaceAutocompleteFragment autocompleteFragment1 = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment1);
Error I am getting is
Incovertible types;cannot cast 'android.support.v4.app.Fragment' to com.google.android.gms.location.PlaceAutocompleteFragment '.
XML LAYOUT 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>
Thanks in advance
Use
getActivity()
like this way.The fragment id should be
android:id="@+id/place_autocomplete_fragment1"
You have to use the following in your XML layout file:
Note the full classname and id, your id don't match. (place_autocomplete_fragment1)
Another valid reason of this error is that you must be extending your
Fragment
class fromandroid.support.v4.app.Fragment
and casting it toPlaceAutoCompleteFragment
which extendsFragment
class fromcom.google.android.gms.location.PlaceAutocompleteFragment
. To avoid this you should/can useSupportPlaceAutoCompleteFragment
instead of you are using.Using this your autocomplete widget will also work on the lower version devices.
PlaceAutocompleteFragmentin your layout xmlChange getChildFragmentManager() instead of
getFragmentManager()and use SupportPlaceAutocompleteFragment instead ofPlaceAutocompleteFragmentin your java file,.