Ich verwende PlaceAutoCompleteFragment
innerhalb eines Fragments. Das erste Mal, wenn (App-Fragment, in dem PlaceAutoCompleteFragment
platziert ist) öffnet es funktioniert wie ein Charme. Aber, wenn ich das zweite Mal auf den Knopf klicke, um Fragment zu öffnen, stürzt es mit einem Fehler ab. Es funktioniert nur ein einziges Mal.Wie verwende ich das Widget PlaceAutoCompleteFragment in einem Fragment - Android?
FATAL EXCEPTION:
android.view.InflateException: Binary XML file line #64: Error inflating class fragment
Caused by: java.lang.IllegalArgumentException: Binary XML file line #64: Duplicate id 0x7f0d0094, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.location.places.ui.PlaceAutocompleteFragment
Dies ist, wie ich dies mit:
SupportPlaceAutocompleteFragment placeAutocompleteFragment = (SupportPlaceAutocompleteFragment) getActivity().getSupportFragmentManager().
findFragmentById(R.id.place_autocomplete_fragment);
placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
System.out.println(place.getAddress());
}
@Override
public void onError(Status status) {
}
});
Fehler ist auf dieser Linie in onCreateDialog
Verfahren, in dem das Layout aufbläst:
View view = inflater.inflate(R.layout.add_geofence_layout, null);
XML:
<fragment
android:id="@+id/place_autocomplete_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.google.android.gms.location.places.ui.SupportPlaceAutocompleteFragment" />
Fragen sich! Warum funktioniert dieser Code nur einmal?
DialogFragment Klasse:
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inflater = getActivity().getLayoutInflater();
View view = inflater.inflate(R.layout.add_geofence_layout, null);
viewHolder = new ViewHolder();
viewHolder.initializeView(view);
viewHolder.placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
System.out.println(place.getAddress());
}
@Override
public void onError(Status status) {
}
});
}
Hinweis: - Ich bin ein PlaceautoCompleteFragment
in einem DialogFragment
verwenden. Wenn ich dies innerhalb einer Aktivität verwende, funktioniert es gut.
teilen Sie den Code, den Sie verwenden, um das Fragment zu öffnen – x0r
@ R.Kirill Code, den ich verwende, um zu öffnen Fragment: AddGeoFenceFragment dialogFragment = neu AddGeoFenceFragment(); dialogFragment.setAddGeoFenceListener (MainActivity.this); dialogFragment.setCancelable (false); dialogFragment.show (getSupportFragmentManager(), "AddGeoFenceFragment"); –
Haben Sie Antworten hier angeschaut: http://stackoverflow.com/questions/14083950/duplicate-id-tag-null-or-parent-id-with-another-fragment-for-comp-google-androi. – WannaBeGeek